PodServer
Roadmap
PodServer Version 0.1
Front-End DB storage system
Table for episodes - Each entry contains the rss data for the item category, also contains keys for the show media and show notes.
Table for generic media - The generic place to store binary data. The sever should be able to get to these files with something like files.php?MediaID or possibly files.php?FileName but then the FileName would have to be unique in the table.
Table for the episodes primary media - This is what points to the mp3 for this episode. Later this will be expanded so each episode can be sent out in multiple formats. (mp3 high, mp3 low, ogg, etc)
Table for each feed - This is mostly the stuff that is in the rss file before the items.
Table to track distribution - Each time an episode is loaded, the uploader (and any pre-defined rules we have) must pick the feeds that the episode will be linked from. This will be a large table, because each episode will have >= 1 entry here.
Table to track rss categories - the rss feed can have multiple entries here.
Table to track rss keywords - the rss feed can have multiple entries here.
Table of acceptable media formats - contains data needed to build the feed, plus its nice to know.
Table of contributors to each episode - what users worked on this feed. We'll also need a table of users somewhere, but I haven't added this yet, because it would be nice to interface with some off-the-shelf user management system.
Basic Feed Generation System
Take the above data and make an RSS feed - the feed will not be stored on a server anywhere, it will simply be a php file that will be something like feed.php?FeedAName or feed.php?FeedBName, we could even allow feed.php?FeedID. They will be generated each time a user requests one from the DB.
One-Page upload system (use webserver authentication to restrict)
Create a form that will allow the user to enter the needed information to create a feed
Create a form that will allow the user to enter
the needed information to publish an episode
PodServer Version 0.2
Advanced Feed Generation System
Create a new table that keeps track of "Meta" feeds - Meta feeds, are simply feeds that combine one or more the manual feeds
Update to make 1 rss per format - Each feed would be made into an rss once for each format an episode could be published in. With one feed table entry, there could be a high-quality mp3 rss feed, a low quality rss feed, and an ogg feed, for example.
Remote PodServer Version 0.1, Podserver Verion
0.3
Distributed Serving Ability –
Sync DB between remote servers automatically. Central one can
generate RSS that points to the remote ones.
The Remote PodServer will be a remote version of the database, which will need to be synched whenever there is a change. However, the only access this will allow is to the media files. This way, the real PodServer, can simply point to the url of the files in its rss feed some of the time it is generated.
Podserver will need to add a table to keep track of what Remote PodServers are alive (it will also need to check this frequently)
PodServer will need to change the url of the show media in the rss feed between each request, so we'll need some global variables to keep track of this
PodServer Version 0.4
BitTorrent Tracker
Create the tracker on the server
Track a torrent for each show file
BitTorrent Seeder
Start a seed for that file
BitTorrent Feed Generation
Allow generation of another set of feeds, which should double the number from version 0.2
We probably won't need to distribute the .torrent files to the Remote PodServers, because they're quite small.
Remote PodServer Version 0.2
Distributed BitTorrent Seeding
When a new show propagates in the database, connect to the tracker and start seeding (the file should have already been downloaded) Once all the remote podservers have connected the central server will make the BT feed public.
PodServer Version 0.5
Advanced UI...website, themes, etc
Allow the ability to connect with a fancier website. This will be especially important for the show notes that are in the DB. We'll need some themed application that will grab the rss and make a blog view of it.
PodServer Version 0.9, Remote
PodServer Version 0.9
Bug Fix Period
PodServer Version 1.0, Remote
PodServer Version 1.0
Stable Release
PodServer Version 1.1
Back End DB system
Interface for user(s) to upload multiple pieces of a show that they are working on
An interface for submitting a show to be published as an episode for the public - data that usually must be entered manually could be kept for each user.
Contributing User Login system
Hopefully we'll be able to us an off-the-shelf user management system for this. Lots of people have written applications that handle logins, signing up, managing preferences, etc.
This should be interoperable with forums, wikis, etc
File Versioning System
Keep all snippets of media that were uploaded in
the process of creating a final copy
PodServer Version 1.2
Back end user permission system
Ability to give users permission to view media, upload media for building into a show, submit an episode to the public, comment on work done, etc
Show production system (comments, joining, splitting, etc)
Advancing the File Versioning System - Keeping track of what pieces of media were joined/split/edited into what new piece(s) of media
PodServer Version 1.3
Server based audio/video
encoding...enter media in one format, it will make versions in other
formats.
Submit a high quality mp3, and the server will generate a low bitrate mp3, ogg file, acc file, etc same for video
PodServer Version 1.9
Bug Fix Period (pre 2.0)
PodServer Version 2.0
Stable Release