Podcastamatic is Free Software, licensed under GNU General Public License.
Contents- What does Podcastamatic do?
- Examples
- Requirements/preparation
- How to use Podcastamatic
- Check for MP3::Info and MP4::Info modules
- Customize what is displayed for each entry
- Customize the automaticly generated webpage
- Use your own HTML template
- Config file
- iTunes
- Changes
- Disclaimer
What does Podcastamatic do?
Podcastamatic automates the creation of a webpage and a RSS feed for your podcast, based on MP3 tags. A webpage can either be automatically generated from scratch or generated from a template you create. An RSS feed is an XML file that is required to be listed in most popular podcast directories. iTunes specific tags are supported. Podcastamatic is highly customizable.
Examples
For examples of Podcastamatic HTML and RSS output, see Shakespeare Souffle and Homeschool Habitat.
Requirements/preparation
- You need to have Perl. It's Free Software.
- For Windows get Perl at ActiveState.
- Others see perl.com.
- Your Perl needs to have the module MP3::Info installed.
- To get MP3::Info for Windows, run ppm then use the command
install mp3-info to download it. - For Mac OSX, type this at a command line
sudo perl -MCPAN -e "install MP3::Info" and type the Admin password. - For other OSs, get it at www.cpan.org/modules/by-module/MP3/
- To get MP3::Info for Windows, run ppm then use the command
- Copy the example Podcastamatic config file "example_podcastamatic.conf" to "podcastamatic.conf" for your own podcast.
- Edit "podcastamatic.conf" for your own podcast.
- The comments in the config file should explain what is required.
- Within the config file, ServerSide refers to whatever computer you are running Podcastamatic.
- Whenever you write out a MS Windows file path, use regular slashes instead of the standard back-slashes. (e.g. f:/like/this).
- The easiest method is to let Podcastamatic autogenerate HTML from scratch (this is the default).
- Run podcastamatic.pl and look for errors, and check the generated HTML and XML files.
- Upload your MP3s, generated HTML, generated XML, stylesheet (either use the provided style.css or make/edit your own) to your webserver.
- Once it is all on the server, check everything (especially the links) to make sure it is correct.
- If after reading all of the documentation you still have a problem, please post a message in the Podcastamatic Forum.
Alternately, you could run Podcastamatic from your webserver. This is a good option if you are able to install the MP3::Info module to the webserver.
Here is an example of what you will see on the command line when you run Podcastamatic.
Reading configuration file "podcastamatic.conf" ... Done. Looking for audio files... Found q:/testpodcast/audio/Copy of shakes20041224.mp3 Found q:/testpodcast/audio/shakes20041224.mp3 Found q:/testpodcast/audio/shakes20041225.mp3 Found q:/testpodcast/audio/shakes20041231.mp3 Found q:/testpodcast/audio/shakes20050104.mp3 5 audio files were found. Building XML file "q:/testpodcast/rss.xml" Adding "Shakespeare Souffle #4" Adding "Shakespeare Souffle #3" Adding "Shakespeare Souffle #2" Adding "Shakespeare Souffle #1" Adding "Shakespeare Souffle #1" XML file is done. Building automatic HTML file "q:/testpodcast/index.html" Adding "Shakespeare Souffle #4" Adding "Shakespeare Souffle #3" Adding "Shakespeare Souffle #2" Adding "Shakespeare Souffle #1" Adding "Shakespeare Souffle #1" Automatic HTML file has been created. Note: No template driven HTML file to be generated per config file.
Check for MP3::Info and MP4::Info modules
How can you check to see if you have the MP3::Info and MP4::Info modules? I wrote this little script to check for you. From the command prompt (or whatever you call it in your OS!) and cd to the location where you unzipped the script and run: perl checkmodules.pl
Customize what is displayed for each entry
This will allow your to specify what MP3 tags or file information is displayed for each entry, so you can customize the output.
You can do this by using the InEachEntry item in the config file. The InEachEntry item can appear multiple times in the config file, to allow for several lines of customization and readability. You can use HTML and the special tags listed below.
[TITLE] "Song title" as defined by the MP3 tags.
[COMMENT] MP3 "Comment" tag.
[AUDIOFILE] audio filename full URL, properly encoded (i.e. spaces encoded as %20)
[AUDIOFILE_NO_PATH] audio filename, no path, properly encoded
[AUDIOFILE_NO_PATH_NO_ENCODE] audio filename, no path, not encoded
[RUNNING_TIME] total time of audio file format MM:SS
[BYTES] filesize in bytes
[KBYTES] filesize in kilobytes
[MBYTES] filesize in megabytes
[FILE_MODIFIED] file modified date/time
[ARTIST] MP3 "Artist" tag.
[ALBUM] MP3 "Album" tag.
[YEAR] MP3 "Year" tag.
[GENRE] MP3 "Genre" tag.
[FILETYPE] inserts "MP3"
[SPACE] inserts a single space
[EOL] inserts End Of Line character.
[NULL] does nothing
Customize the automaticly generated webpage
See HeaderHTML and FooterHTML in the config file. In these entries, you can add HTML that is added to the generated webpage. You can also use the special tags listed in Use your own HTML template.
Use your own HTML template
Create a HTML file in the HTML editor of your choice or copy an existing one, to become the template. Insert these tags into the template. At minimum, you must include the [ENTRIES] tag, all others are optional.
In the config file, set UseTemplateForHTML 1 and set the template filename in config item TemplateFile, the default value is template.html.
[ENTRIES] All entries for each audio file are inserted here.
[BUILDTIME] Current build time in GMT.
[TITLE] As defined in config file.
[DESCRIPTION] As defined in config file.
[COPYRIGHT] As defined in config file.
[MORE_INFO] As defined in config file.
[ADDITIONAL_HTML] As defined in config file.
[STYLESHEET_WEBSIDE] As defined in config file.
[XMLWEBSIDE] As defined in config file.
[SPACE] Inserts a single space.
[EOL] inserts End Of Line character.
[NULL] Inserts nothing.
Config file
By default, Podcastamatic assumes that the config file is in the current directory and is named podcastamatic.conf, however you may specify a different config filename as a parameter when calling Podcastamatic. For example: podcastamatic.pl mypodcast.conf.
iTunes
- The iTunes "Explicit" tag is now supported. When iTunesExplicit is set to "yes" then the whole channel and all episodes of the podcast is marked as Explicit=yes. There is not yet a way to configure each episode individually.
- Support for MP4 (mp4, m4a, m4p) files requires Perl module "MP4::Info".
- For information from Apple about the iTunes specific tags see Apple's How To Publish a Podcast on the iTunes Music Store. See podcastamatic.conf for example configuration.
Changes
v1.3
- Added support for MP4 (mp4, m4a, m4p) files. Requires Perl module "MP4::Info".
- Added support for iTunes "Explicit" tag. If you are using iTunes support you must now configure "iTunesExplicit" as "yes", "no", or "undefined".
- Added support for different sort orders.
- If there is no MP3/MP4 "Title" tag then the filename is now used (was blank).
- Fixed warning if there is no tag field is empty.
v1.2
- Now encode special characters (ampersand, less than, greater than, apostrophe (single quote), double quote) properly as required for XML and HTML.
- Added support for iTunes specific tags (experimental).
- Fixed XML bug when there is a space in filename (thanks Dr. Juan Cabanela).
v1.1
- Fixed bug that caused only 1st tag of it's kind to be replaced.
- Fixed wrapping issue in multi-line config items. Makes HTML code more readable.
- Added [EOL] tag (insert End Of Line character).
v1.0
- Simplified configuration.
- Improved customization options.
- Added log file generation.
- Cleaned up internal code.
v0.3
- Thanks to Craig Meyer for Mac OSX instructions to install MP3::Info.
- Fixed XML description tag; now validates at http://feedvalidator.org/ Thanks to Ed at NIMIQ and Victor Cosby for their help in this.
- added "header" CSS id to HTML output
- new configuration item to HTML output: AdditionalHTML (optional) allows you to add additional HTML code to the generated HTML file
- added "generated by" tagline to HTML output, uses CSS "classgeneratedby"
- Made "No audio files found" error more verbose (thanks to Brian Hefferan)
- Encodes spaces in URLs correctly (urlencode routine thanks to Brian Hefferan)
- Tweaked HTML output so it is now valid HTML 4.01 Strict. Validates at http://validator.w3.org/
- Added "Templates" feature. Added config items "UseTemplateForHTML" and "TemplateFile". See docs for usage.
v0.2 (1st public release)
v0.1 (unreleased)
Feel free to write me with questions, comments or suggestions.
Disclaimer
Disclaimer: Kenward Bradley, or anyone involved with Podcastamatic, shall not be liable for any damages or costs of any type arising out of or in any way connected with your use of the software.