The key components of a media hosting service (MHS) like YouTube are:
- ability to upload very large media files (multiple gigabytes)
- ability to play media files in a web browser
Almost as important:
- ability to maintain (edit, display) information about each media file
- ability to search media files by data
Any modern media service that we would expect people to actually use should also:
- allow grouping/ordering of files into playlists
- allow some kind of collaborative contribution to media file annotations
- in YouTube, this takes the form of comments (for anyone who doesn't "own" the video), but there are certainly other models which could be followed
The key idea would be to use OwnCloud to handle the uploading of files. Since we're also wanting to allow people to use OwnCloud for its actual intended purpose, i.e. cloud storage, we need some way to inform the MHS of which files are intended to be hosted as media ("published", i.e. made available in a web-based player and possibly downloadable) and which are private.
This could be done in any of the following ways:
- Designate the MHS as a "user" on OwnCloud, and "share" files (this is supported by ownCloud) in order to publish them on the MHS.
- Designate a specific folder in each user's OwnCloud file area for publishing.
- Designate a particular OwnCloud server for the MHS -- all files shared with that server become "published".
In each of these scenarios, there is the question of whether the MHS would serve them from ownCloud's file repository (where users might modify, move, rename, or delete them) or move them elsewhere to serve them. There are arguments on either side, so I'll leave that decision for later.