Podcasting Plugin for Movable Type

Overview

The Podcasting Plugin for Movable Type allows users to easily link to and include MP3 at any URL in their Movable Type blog and to manage those podcasts as assets within Movable Type's asset management system.

Features

  • Link to any podcast on the Internet. All you need is a URL.
  • Let the plugin automatically extract the content type and content length of the podcast being linked to.
  • Automatically embed a streaming, flash based MP3 player into your posts to allow your readers to listen to your content easily.
  • Manage podcasts as assets within Movable Type's asset management system.

How it Works

Once a podcast is in Movable Type's asset management system one can then use Movable Type's default template tags to encode podcasts as enclosures within RSS and Atom Feeds.

Installation

Before we proceed, make sure each of the following prerequisites have been satisfied.

Prerequisites

  • User has MovableType 4.01 or greater installed
  • User has LWP installed

Instructions

  1. Install the plugin's files.

    To install this plugin, unpack the plugin's archive. Then copy the contents of Podcast's mt-static directory into Movable Type's mt-static directory:

    cp -pR Podcast-1.1/mt-static/* /path/to/mt/mt-static/

    Then copy the contents of Podcast's plugins folder to Movable Type's plugins folder:

    cp -pR Podcast-1.1/plugins/* /path/to/mt/plugins/

    In the event that you are unable to unpack the plugin's archive directly on the server, you may need to install the files manually. To do this, each of plugin's files needs to be placed in a specific directory, as outlined below:

    plugins/Podcast/lib/Podcast/*
    ==> $MTHOME/plugins/Podcast/lib/Podcast/ plugins/Podcast/tmpl/*
    ==> $MTHOME/plugins/Podcast/tmpl/ plugins/Podcast/Podcast.pl

    The following files are static files and must be placed in your static web path. By default this is $MTHOME/mt-static.

    mt-static/plugins/Podcast/* ==> $MTHOME/mt-static/plugins/Podcast/

  2. Set Your StaticWebPath.

    Podcast makes use of a freely available flash file to stream MP3 files from your blog. This must be accessible via a web browser.

    To change your static web path, open up your mt-config.cgi file and look for the following lines:

    # If you place all of your MT files in a cgi-bin directory, you # will need to place the directory containing your static files # (mt-static) elsewhere, so that the webserver will not try to execute # them. StaticWebPath is the path to your mt-static directory. # # StaticWebPath http://www.example.com/mt-static

    Set the value of StaticWebPath to the fully qualified URL of your mt-static directory.

Adding Podcasts to Your Feeds

Some of your feeds must be edited manually to make this plugin fully compatible with podcasting services and people wishing to subscribe to your podcasts.

Atom Feeds

The following can be inserted anywhere within the <mt:Entries> tag within your Atom feed. While iTunes supports Atom, the RSS feed is recommended as it is the most well documented format for iTunes and podcasting support (see below).

<mt:EntryAssets>
<mt:SetVarBlock name="assettype"><mt:AssetType></mt:SetVarBlock>
<mt:if name="assettype" eq="podcast">
    <link rel="enclosure"
         type="<mt:AssetMimeType>"
         title="<mt:AssetLabel>"
         href="<mt:AssetURL>"
         length="<mt:AssetProperty property="file_size" format="0">" />
</mt:if>
</mt:EntryAssets>

RSS Feeds

See download links below.

Licensing

The Podcast Plugin for Movable Type is available for free but must be used in accordance with the terms of your Movable Type license (either free for personal use, or for commercial use when used in conjunction with your Movable Type Commercial License).

The Flash Player is bundled with this distribution, but should be licensed separately if you intend to use this plugin for commercial purposes.

Download

Support

Support is provided through Movable Type's forums.

12 Comments

Nice one Byrne. To make it easier to install, I have packaged up your podcasting feed templates. Get the MT4 Podcasting Templates here and then install them easily with Template Installer.

Hello Byrne,

I tried it, and it looks good. I can point to .mp3 files. But, when I tried to point to .ogg file, no luck. It says the file could not be found.

So, does it only work for .mp3 audio file?

What this really needs is a way to upload an mp3 via "create entry" and embed the flash player automatically when you click finish. That would ROCK! :)

Good plugin though! Even if the word podcasting does make me cringe.

Hey Byrne, reading the licensing on this, is there an open source license on it? Or, is it simply freeware? Thanks, Bud

I am sorry it was not clear. The podcasting plugin has been donated to the Movable Type Open Source Project. As such, it is licensed under the GPL v2.

Hi Byrne, I've kicked the tires on this a bit using the 12/24 nightly of MTOS. The plugin seems to have successfully installed. Here's what I understand it is supposed to do:

  1. Scan the entry for URLs pointing to identified media files. Currently only mp3 is supported.

  2. Insert assets corresponding to those media files into MT and associate those assets with the entry.

  3. Insert a player into the published entry (!?) for the mp3 file.

My test case is here:

http://budgibson.com/home/archives/2007/12/a-test-podcast.shtml

Currently, testing for 3 on my MTOS nightly, no player is inserted for the mp3 case. I have not yet tested for 2.

Considering my own use case documented here:

http://wiki.movabletype.org/Podcasting

I have simple changes that would make the plug-in usable for me if still a bit far from ideal. Here they are:

  1. Make the file types scanned configurable. I would imagine that those file types include mp4, jpg, flv, swf, etc. In the configuration, I would like to make labels for each type of asset such as mp4version, thumbnail, flv version.

  2. Don't bother with trying to insert a player. Just make the files available as assets associated with the entry.

From my perspective, a much better strategy would be to stop scanning for media files in the entry source altogether and instead provide an ajax form on the entry for associating files with the entry. I realize this may be easier said than done since there is no entry to associate files with until the entry is actually published. I would leave all insertion of assets into entries, etc. to template authors.

The ideal plugin for me would simply allow me to associate any media URL with an entry and then use template tags to construct html pages and feeds as I deem fit. Either fix I propose would get me closer to this goal.

BTW, I am posting this note to the podcast wiki page I reference above. It is not intended as a demand on you, but rather as feedback from a user to move the ball forward for whoever might choose to develop it. I appreciate the work you did on this and your generosity in donating it to MTOS.

I looked at the source of the plugin and determined that it created a form somewhere in the entry interface. I kept on going back to the entry screen trying to figure out where that menu could be. Finally, I found it under the create menu.

At this stage, I may be able to make slightly more informed comments regarding the plugin. Here they are:

  1. LWP is nice but not necessary here. It provides an automated way to get certain metadata. I suspect one could make it optional.

  2. If you wanted to create a custom entry screen say for video podcasting with different video types and flip poster pictures covering the video, it seems you could modify the plug-in's template to collect that information.

  3. You would have to also modify some internals to create the new assets.

  4. It is not entirely clear that you want to insert the asset information to create the podcast directly in the entry.

I really tried my best to get this plug-in to work for me. It kinda did, butonly when I used the standard RSS feed. I tried to figure out what was causing the atom feed not to work but was never able to figure it out. It will parse all entries until it hits the one with the podcast. When I check my Atom RSS feed I see 2 entries and none of my older ones. When checking the actual source of the feed, it is indeed in there though.

Also when I link to a podcast, the asset manager uses my mt-static path but doesn't append a "/" at the end. I've run my mt-static path without the "/" at the end all this time with no problems. Is this a bug or should I be appending the "/" to the end of my mt-static path?

Hope this made sense!

Okay after a few more minutes of comparing code I noticed things were different all over the place when it came to the atom feed:

On this page: http://www.movabletype.org/documentation/examples/podcastatomfeed.txt

The Atom code reads:

 <mt:EntryAssets>
 <mt:SetVarBlock name="assettype"><mt:AssetType></mt:SetVarBlock>
 <mt:if name="assettype" eq="podcast">
 <link rel="enclosure"
 type="<mt:AssetMimeType>"
 title="<mt:AssetLabel>"
 href="<mt:AssetLink>"
 length="<mt:AssetProperty property="content_length" format="0">" />
 </mt:if>
 </mt:EntryAssets>

But on your Atom feeds code on this page it reads:

<mt:EntryAssets>
<mt:SetVarBlock name="assettype"><mt:AssetType></mt:SetVarBlock>
<mt:if name="assettype" eq="podcast">
<link rel="enclosure"
type="<mt:AssetMimeType>"
title="<mt:AssetLabel>"
href="<mt:AssetURL>"
length="<mt:AssetProperty property="file_size" format="0">" />
</mt:if>
</mt:EntryAssets>

But this is the only code that worked inside of an Atom feed for me:

<mt:EntryAssets>
<mt:SetVarBlock name="assettype"><mt:AssetType></mt:SetVarBlock>
<mt:if name="assettype" eq="podcast">
<link rel="enclosure" type="<mt:AssetMimeType>" title="<mt:AssetLabel>"
href="<mt:AssetURL>"
length="<mt:AssetProperty property="content_length" format="0">" />
</mt:if>
</mt:EntryAssets>

Which is the correct one? I'm hoping it's the last one since it was the only one that seemed to work in my feeds.

The of the property called "content_length" is correct.

Is there any way to use this plugin with typepad blogs? I've been searching for something worthwhile but have come up empty handed. In fact, I'm very, very disappointed with Typepad's lack of reasonable support for podcasting (like podpress for WP).

So, if I understand it correctly, you must add the podcast .mp3 file as an Asset for it to be included in an tag?

Is there any way, in a future version, it can automatically look for a linked .mp3 in the entry text, and make that the enclosure?

I don't use MT's entry-creation tool to create posts, instead using a desktop-based application.

Leave a comment



Recent Entries

Sharing more theories on Galactica Quorum
If you haven't figured it out by now, I am a huge fan of Battlestar Galactica. Between episodes I get…
Introducing Blog It, Powered by TypePad
Major props to David Recordon, Bryan Tighe and Jamison Weiser on the release of Blog It Powered by TypePad. Blog…
Who Baltar might really be
There is rekindled speculation about who the fifth cylon might be in Battlestar Galactica now that the series has finally…
Change Congress