Yes it is extremely complex! On a previous ASP.NET website I implemented a media system that allowed for all different kinds of media as well as playlists. Playlists could even be mixed types, and the Flash player I built can handle video audio
Half of that work was designing a database of content items where each item could be a different type, and be able to customise the rendering and editing of each item. This is why I'm really interested in Orchard, because it already provides a solid framework
that does exactly that, but does it in a way far more extensible and elegant than my efforts... Although there are
some things that I preferred my way, but I'm fine with that and there's always a good reason why things are done in a particular way. My system did have many-to-many content relationships which is how
I was implementing playlists (and other list-based content) ...but I'll mention that in a second :)
When I first looked at your module it sounded really promising because it described that kind of framework. At the time I was specifically looking for an image gallery where images could be uploaded so that might have been why I didn't dig deeper - I'm not
sure now thinking about it if I did have any actual problems, or if I'm getting mixed up with another gallery I tried at the time. So apologies for my inaccurate statement and also for not taking a closer look sooner :)
So anyway, the page you've linked to describes something extremely close to how I'd been thinking about it. Basically some kind of MediaPart (I was thinking it should be an IMediaPart so implementations can be replaced or added to existing parts) which will
then wire up to an appropriate renderer to play the media. I'd thought about some ways of separating out the distinction between files coming from a physical server location and files on external URLs as well as other sources such as feeds; which I think is
what your Proxies are achieving. I think there are some details that could be tweaked to make the system simpler / easier to understand but it's a pretty thorough analysis of what needs to be done.
What I've got at the moment, in prototype form, is an Orchard module that enables arbitrary many-to-many relationships. There are implementation details I'm finalising but it's working and seems extremely effective. You create each type of relationship as
a content type and additional template alternates are then available using the relation type name to customise how sub items with that relationship will display. You could for instance replace the Menu system entirely with a "Menu Item" relation type between
contents. Right now I'm just implementing per-content permissions using a different relationship type. The entire Containers/Containable system could be trivially replaced with this system (well... once I sort out the Routable handling).
Part of the intention of this system is that you could use it to just as easily build playlists and galleries as you could define thumbnail(s) for a particular video or even product. Or link a video to multi-lingual transcriptions. Or build a blog. Or enable
a whole load of other situations without having to code even one content part!
I'm very up for collaborating on the media side of things anyway. Perhaps should move further discussion to your codeplex page?