I work for an organization where we take raw MPEG-2 video files of lectures from academic institutions and make them available on our website in a variety of formats. Right now the workflow for turning the MPEG-2 into audio (MP3) and video (MP4), uploading to iTunes U, YouTube, etc. is extremely tedious. I would like to automate this process, but the main thing keeping me from doing it is all the tagging that is associated with each step in the workflow.
Basically, I would like to make it so that I can just tag the original file once (tagging the raw MPEG-2 file and having the metadata stick with it through transcoding is probably too much to ask, so let's just assume I'd tag each pair of MP3/MP4 files), with all of the metadata needed for every place that the video is uploaded - so the metadata would have to include the proper data for YouTube, iTunes U, our website, and every other place we upload content to. Because of how extensive the metadata is, the normal ID3 tags won't be enough. I would like some sort of a fully customizable metadata (maybe XML-based, but not necessarily) solution for programmatically tagging and reading metadata fields from MP3 and MP4 files. Does such a thing exist? I'm ok with writing my own custom client programs for this, and the language choice isn't really important, but I haven't been able to find a specification for something like what I'm looking for.