These are the original concepts that were part of the first ideas toward building this system:
I've been thinking about how to work on a podcast system in a distributed
fashion for quite some time...and now I have the necessary prodding to put my
ideas down on paper. What do people think???
2 Parts to the database/webserver, one for getting feeds (front end), one for
building shows (back end).
Front end
Dynamically generated RSS. This would allow for easy load balancing. Every third
request could go to a backup server.
Choose your flavor RSS feeds...high bit rate, low bit rate mp3, ogg, bookmarked
aac. Could these be automatically (with a script) generated from a master copy?
Same for video.
Make feeds that are a mix of one or more feeds...so DB, SHP could be in one feed
and SHP, SWC, SON could be another. (Automatically)
Bit torrent....this is a must if there's going to be video. We need a tracker
and a seeder. Possibly also use distributed, pre-seeded seeds (use a secret feed
to get some other known and good seeds going before the torrent file is put in a
public feed).
Store files, show notes, etc in the database...then its easy to build sites/rss/etc
from that. Some ideas for tables with some data members:
Show – date released, running time
ShowMedia – ShowID, format, file (format: mp3-hi, mp3-low, ogg-hi, ogg-low, aac,
etc for audio. wmv, xvid, dvix, mp4, m4v, h264, psp etc for video)(we might need
a table just for formats...there's so many and they're always being added)
ShowNotes – ShowID, format (html or text), ascii
Contributers – ShowID, UserID
Feeds – FeedID, ShowID
Back End
User must log in to get to back end features. Not everyone can get into
everything...need a permission system. If I own a show, I can give others
permission to edit, contribute, etc.
Allow user to create a show and upload multiple audio and/or video clips
pertaining to that show. If someone else wants to edit, then can get the clips
from here.
Keep all versions of the files. We want to always go back...kind of wiki like.
Allow comments and conversation amongst the
authors/contributors/producers/editors.
Setup scripts that can be run remotely to do simple tasks, like join two pieces
of audio or convert one format into another. Then the media wouldn't need to be
downloaded to be worked with.
When a show is finished, have a form to submit it to the front end for the
public to receive.
Backend Tables:
Users – Username, Real Name
ContactInfo – UserID type, string (type: e-mail, private e-mail, public e-mail,
aim, msn, yahoo, skype, gizmo, phone, address, etc)
WorkShow -
WorkComment – WorkShowID, Date/Time, HTML, UserID
File – format, file
FileVersion – WorkShowID, FileID, ParentID, WorkCommentID (if joining two files,
make two of these with the same FileID and different parent Ids. If splitting
two FileIDs, one ParentID)
Permission – WorkShowID, UserID, PermissionLevel (Owner, Contribute, Edit, etc)
....there will be more
Open Source
If people are interested in this project, I think we should definitely
open-source it. There's no good reason we should keep this to ourselves. Plus,
we might get new and cool features that way :-)
I was thinking about making a project on sourceforge for it...anyone interested?
I was thinking of the name podserver :-)