<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paulo Morgado : Podcasts</title><link>http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx</link><description>Tags: Podcasts</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>MIX09 Session Videos – How I Did It</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos-how-i-did-it.aspx</link><pubDate>Mon, 23 Mar 2009 01:04:04 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1680499</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1680499</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1680499</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos-how-i-did-it.aspx#comments</comments><description>&lt;p&gt;On my &lt;a title="MIX09 Session Videos" href="http://www.arquitecturadesoftware.org/blogs/paulomorgado/archive/2009/03/23/v-deos-das-sess-es-do-mix09.aspxhttp://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx" target="_blank"&gt;last post&lt;/a&gt; I introduced the feeds I created to subscribe to Mix09 session videos.&lt;/p&gt;  &lt;p&gt;In case someone is interested on how I did it, here it is:&lt;/p&gt;  &lt;pre style="overflow:auto;" class="code"&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@ &lt;/span&gt;&lt;span style="color:#a31515;"&gt;WebHandler &lt;/span&gt;&lt;span style="color:red;"&gt;Language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;C#&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;mix09&amp;quot; &lt;/span&gt;&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;

&lt;span style="color:blue;"&gt;using &lt;/span&gt;System;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.IO;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Web;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Linq;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Xml.Linq;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Net;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Xml;

&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;mix09 &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;IHttpHandler&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;IHttpAsyncHandler
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;IAsyncResult
    &lt;/span&gt;{
        &lt;span style="color:blue;"&gt;private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;callback;

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;WebClientOpenReadAsyncResult()
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.CompletedSynchronously = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;WebClientOpenReadAsyncResult(&lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;callback)
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback = callback;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.CompletedSynchronously = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
        }

        &lt;span style="color:blue;"&gt;public object &lt;/span&gt;AsyncState
        {
            &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;return null&lt;/span&gt;; }
        }

        &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;CompletedSynchronously { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;System.Threading.&lt;span style="color:#2b91af;"&gt;WaitHandle &lt;/span&gt;AsyncWaitHandle
        {
            &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;throw new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;ASP.NET should not use this property .&amp;quot;&lt;/span&gt;); }
        }

        &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;IsCompleted { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;Stream { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public void &lt;/span&gt;Completed(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, &lt;span style="color:#2b91af;"&gt;OpenReadCompletedEventArgs &lt;/span&gt;e)
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Stream = e.Result;
            &lt;span style="color:blue;"&gt;if &lt;/span&gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);
            }
        }

    }

    &lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Uri &lt;/span&gt;mixSessionsUri = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;http://sessions.visitmix.com/RSS&amp;quot;&lt;/span&gt;);

    &lt;span style="color:blue;"&gt;private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context;

    &lt;span style="color:blue;"&gt;private string &lt;/span&gt;type;

    &lt;span style="color:blue;"&gt;#region &lt;/span&gt;IHttpHandler Members

    &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;IsReusable
    {
        &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;return true&lt;/span&gt;; }
    }

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;ProcessRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context)
    {
        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = InitializeRequest(context);

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(wc == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            &lt;span style="color:blue;"&gt;return&lt;/span&gt;;
        }

        OutputFeed(wc.OpenRead(mixSessionsUri));
    }

    &lt;span style="color:blue;"&gt;#endregion

    #region &lt;/span&gt;IHttpAsyncHandler Members

    &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IAsyncResult &lt;/span&gt;BeginProcessRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context, &lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;cb, &lt;span style="color:blue;"&gt;object &lt;/span&gt;extraData)
    {
        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = InitializeRequest(context);

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(wc == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            &lt;span style="color:blue;"&gt;return new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;();
        }

        &lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult &lt;/span&gt;ar = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;(cb);

        wc.OpenReadCompleted += ar.Completed;

        wc.OpenReadAsync(mixSessionsUri, extraData);

        &lt;span style="color:blue;"&gt;return &lt;/span&gt;ar;
    }

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;EndProcessRequest(&lt;span style="color:#2b91af;"&gt;IAsyncResult &lt;/span&gt;result)
    {
        &lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;stream = (result &lt;span style="color:blue;"&gt;as &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;).Stream;

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(stream != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            OutputFeed(stream);
        }
    }

    &lt;span style="color:blue;"&gt;#endregion

    private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;InitializeRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context)
    {
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context = context;
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type = context.Request.QueryString[&lt;span style="color:#a31515;"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;];

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.type))
        {
            &lt;span style="color:blue;"&gt;return null&lt;/span&gt;;
        }

        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClient&lt;/span&gt;();
        wc.Headers[&lt;span style="color:#2b91af;"&gt;HttpRequestHeader&lt;/span&gt;.UserAgent] = &lt;span style="color:#a31515;"&gt;&amp;quot;Required User Agent&amp;quot;&lt;/span&gt;;
        &lt;span style="color:blue;"&gt;return &lt;/span&gt;wc;
    }

    &lt;span style="color:blue;"&gt;private void &lt;/span&gt;OutputFeed(&lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;source)
    {
        &lt;span style="color:#2b91af;"&gt;XmlReader &lt;/span&gt;feedReader = &lt;span style="color:#2b91af;"&gt;XmlReader&lt;/span&gt;.Create(source);

        &lt;span style="color:#2b91af;"&gt;XDocument &lt;/span&gt;feed = &lt;span style="color:#2b91af;"&gt;XDocument&lt;/span&gt;.Load(feedReader);

        &lt;span style="color:blue;"&gt;var &lt;/span&gt;rss = feed.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;);
        &lt;span style="color:blue;"&gt;var &lt;/span&gt;channel = rss.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;channel&amp;quot;&lt;/span&gt;);
        &lt;span style="color:blue;"&gt;var &lt;/span&gt;title = channel.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;);

        title.Value = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;{0} ({1})&amp;quot;&lt;/span&gt;, title.Value, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type.ToUpper());
        channel.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;).Value = &lt;span style="color:#a31515;"&gt;&amp;quot;http://cli.gs/Mix09Sessions&amp;quot;&lt;/span&gt;;

        &lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;item &lt;span style="color:blue;"&gt;in &lt;/span&gt;channel.Elements(&lt;span style="color:#a31515;"&gt;&amp;quot;item&amp;quot;&lt;/span&gt;))
        {
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;link = item.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;).Value;
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;session = link.Substring(link.LastIndexOf(&lt;span style="color:#a31515;"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;) + 1).ToLower();
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;enclosureUrl = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;http://mschannel9.vo.msecnd.net/o9/mix/09/{0}/{1}.wmv&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type.ToLower(), session);

            item.Add(
                &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XElement&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;enclosure&amp;quot;&lt;/span&gt;,
                    &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XAttribute&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;url&amp;quot;&lt;/span&gt;, enclosureUrl)));
        }

        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.Write(feed.ToString());

        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.ContentType = &lt;span style="color:#a31515;"&gt;&amp;quot;application/rss+xml&amp;quot;&lt;/span&gt;;

        &lt;span style="color:#2b91af;"&gt;HttpCachePolicy &lt;/span&gt;cache = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.Cache;
        cache.SetCacheability(&lt;span style="color:#2b91af;"&gt;HttpCacheability&lt;/span&gt;.ServerAndPrivate);
        cache.SetExpires(&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;.Now.AddHours(1));
        cache.VaryByParams[&lt;span style="color:#a31515;"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;] = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        cache.SetValidUntilExpires(&lt;span style="color:blue;"&gt;true&lt;/span&gt;);
    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1680499" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx">Podcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category></item><item><title>MIX09 Session Videos</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx</link><pubDate>Mon, 23 Mar 2009 00:06:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1680495</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1680495</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1680495</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Updated (2009Mar25):&lt;/strong&gt; Added MP4 feed.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Mix09 is over and I would like to watch some sessions.&lt;/p&gt;
&lt;p&gt;I like to watch these kind of videos by subscribing them using the &lt;a title="Zune Software" href="http://www.zune.net/software/" target="_blank"&gt;Zune Software&lt;/a&gt; as a podcast. I like the Zune Software because it downloads the “episodes” and I can watch them in any order and it never forgets where I was – even if I was watching it in the &lt;a title="Zune.net | What is Zune?" href="http://www.zune.net/products/whatiszune.htm" target="_blank"&gt;Zune&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, the only feed available (&lt;a title="MIX Videos" href="http://sessions.visitmix.com/RSS" target="_blank"&gt;http://sessions.visitmix.com/RSS&lt;/a&gt;) does not include the videos.&lt;/p&gt;
&lt;p&gt;Fortunately, the address of the videos is very predictable and I was able to build my own feeds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;WMV-HQ: &lt;/span&gt;&lt;a title="MIX Videos (WMV-HQ)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv-hq"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv-hq&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;WMV: &lt;/span&gt;&lt;a title="MIX Videos (WMV)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;ZUNE: &lt;/span&gt;&lt;a title="MIX Videos (ZUNE)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/zune"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/zune&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;MP4: &lt;/span&gt;&lt;a title="MIX Videos (ZUNE)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/mp4"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/mp4&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The session videos are not available in all formats for every session (at least, not now) but, if you subscribe to all, you’ll get videos for all the sessions.&lt;/p&gt;
&lt;p&gt;Subscribe and enjoy.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1680495" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx">Podcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category></item><item><title>My Shared Podcasts</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/05/25/my-shared-podcasts.aspx</link><pubDate>Sun, 25 May 2008 19:34:16 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1627248</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1627248</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1627248</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/05/25/my-shared-podcasts.aspx#comments</comments><description>&lt;p&gt;I used to &lt;a title="My shared podcasts" target="_blank"&gt;share&lt;/a&gt; my podcast watching through a feed created using &lt;a title="FeedDemon For Windows" href="http://www.newsgator.com/Individuals/FeedDemon/" target="_blank"&gt;FeedDemon&lt;/a&gt;, &lt;a title="NewsGator - The RSS Company" href="http://www.newsgator.com/" target="_blank"&gt;NewsGator&lt;/a&gt; and &lt;a title="FeedBurner" href="http://www.feedburner.com/" target="_blank"&gt;FeedBurner&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;It was very easy. All it took was to adding he post to a clipping folder created to that purpose. That folder was shared as an RSS feed and I ran it through FeedBurner to get some statistics and a more friendly URL. For downloading the webcast/pocast, I used FeedBurner&amp;#39;s companion: &lt;a title="FeedStation download" href="http://www.newsgator.com/Individuals/Downloads.aspx?product=FT_FeedStation" target="_blank"&gt;FeedStation&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Because I listen to a fair amount of podcasts, I got myself an &lt;a title="Zune.net | Product Detail - Zune 8GB (Black)" href="http://www.zune.net/products/z/zune8gbblack/details.page/" target="_blank"&gt;8GB&lt;/a&gt;&amp;#160;&lt;a title="Zune.net | What is Zune?" href="http://www.zune.net/products/whatiszune.htm" target="_blank"&gt;Zune&lt;/a&gt;. The Zune uses it&amp;#39;s own software to load content and that software is capable handling podcast subscriptions, so I won&amp;#39;t be needing FeedDemon and FeedStation for subscribing downloading podcasts.&lt;/p&gt;  &lt;p&gt;Because I have a few subscribers to my feed, I wanted to keep it. Then I found PodShow [&lt;a title="mevio - Watch, Listen &amp;amp; Get It... Our Network is Yours!" href="http://mevio.com" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="BTPodShow - Watch, Listen &amp;amp; Get It... Our Network is Yours!" href="http://btpodshow.com/" target="_blank"&gt;^&lt;/a&gt;] a created my onw &lt;a title="Paulo Morgado | mevio" href="http://paulomorgado.mevio.com/" target="_blank"&gt;profile&lt;/a&gt; and changed the source of the feed.&lt;/p&gt;  &lt;p&gt;So, if you already are one of my followers you don&amp;#39;t need to do anything. If you aren&amp;#39;t and would like to be, go ahead and subscribe it.&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;a title="Subscribe to my shared podcast&amp;#39;s feed" href="http://feeds.Paulomorgado.net/PauloMorgadoSHAREDWebcasts"&gt;&lt;img alt="subscribe to my shared podcast&amp;#39;s feed" src="http://feeds.paulomorgado.net/~fc/PauloMorgadoSHAREDWebcasts" /&gt; &lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;a title="My mevieo" href="http://paulomorgado.mevio.com/"&gt;&lt;img alt="My mevieo" src="http://psstatic.podshow.com/static/us/images/defaults/shows/thumbs/default.jpg" /&gt; &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1627248" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Webcasts/default.aspx">Webcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx">Podcasts</category></item></channel></rss>