The following is what I did to post podcasts on our site.
First, I created a new custom document type called Podcast. It includes the fields you outlined in your post, but I host all of my podcasts on Amazon S3 since my hosting provider has limited storage.
For the podcast document type, I created a new transformation that embeds a flash mp3 player. Here is the source I used for the transformation.
<h1>
<%# Eval("Title") %>
</h1>
<%# Eval("Description") %>
<Br><br>
<object
type="application/x-shockwave-flash" data="http://domain.com/audio/audio-player/player.swf" id="audioplayer<%# Eval("ID") %>"
height="24" width="290">
<param name="movie" value="http://domain.com/audio/audio-player/player.swf" />
<param name="FlashVars" value="playerID=030109&soundFile=<%# Eval("MP3") %>" />
<param name="quality" value="high" />
<param name="menu" value="false" />
<param name="wmode" value="transparent" />
</object><br /><Br><br>
<a href="<%# Eval("MP3") %>">Download MP3</a> | Date: <%# Eval("ReleaseDate") %>
<HR>
Checkout http://wpaudioplayer.com/standalone for details on the flash mp3 player. I uploaded all of the required controls to the site using FTP in the path listed in the transform.
On the web site, I created a page that includes a repeater which uses the player transformation created above. This allows site visitors to see all of the podcasts, play the mp3 from the site or download the mp3 file. At the top of the page I also include a link to the RSS and iTune feed.
I also created an RSS feed by creating an RSS.ASPX page. I was successfully able to add my podcast to iTunes, although some of the tags need to be tweaked. The following is the source for the aspx page.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PodcastRSS.aspx.cs" %>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
<channel>
<title><![CDATA[Evergreen Christian Fellowship]]></title>
<author><![CDATA[Weekly Sermon]]></author>
<description>Evergreen Christian Fellowship is a community seeking to build an environment in which people can comfortably inquire of the things of God and grow in faith and service. We are committed to the truth of the Bible and the proclamation of the good news of Jesus Christ.
</description>
<link>http://www.domain.com</link>
<language>en-us</language>
<copyright>Copyright 2009</copyright>
<lastBuildDate>Sat, 25 Mar 2006 11:30:00 -0500</lastBuildDate>
<pubDate>Sat, 25 Mar 2006 11:30:00 -0500</pubDate>
<docs></docs>
<webMaster></webMaster>
<itunes:author>Evergreen Christian Fellowship</itunes:author>
<itunes:summary>Evergreen Christian Fellowship is a community seeking to build an environment in which people can comfortably inquire of the things of God and grow in faith and service. We are committed to the truth of the Bible and the proclamation of the good news of Jesus Christ.</itunes:summary>
<itunes:image href="http://domain.com/Images/web-site/ECF-Color-Logo-(1).aspx"/>
<itunes:category text="Religion & Spirituality">
<itunes:category text="Christianity"/></itunes:category>
<itunes:category text="Religion & Spirituality"/>
<link><![CDATA[<%=HttpContext.Current.Request.Url.AbsoluteUri.Remove(HttpContext.Current.Request.Url.AbsoluteUri.Length - HttpContext.Current.Request.Url.PathAndQuery.Length) + HttpContext.Current.Request.ApplicationPath%>]]></link>
<description>Podcast RSS Feed</description>
<cms:cmsrepeater ID="PodcastRepeater" runat="server" OrderBy="ReleaseDate DESC" ClassNames="cms.podcast"
TransformationName="cms.podcast.rssitem" SelectedItemTransformationName="cms.podcast.rssitem"
Path="/%"></cms:cmsrepeater>
</channel>
</rss>
The RSS.aspx page contains a repeater control which reads all of the podcast documents. The following is the code for the rssitem transform.
<item>
<title><%# Eval("Title") %></title>
<link><%# GetAbsoluteUrl(GetDocumentUrl()) %></link>
<guid><%# Eval("MP3") %></guid>
<description><%# Eval("Description") %></description>
<enclosure url="<%# Eval("MP3") %>" length="11779397" type="audio/mpeg"/>
<category>Podcasts</category>
<pubDate><%# Convert.ToDateTime(Eval("DocumentModifiedWhen")).ToString("r") %> -0500</pubDate>
</item>
I am sure there are improvements to be made, for example the iTune tages. Hope this helps.