HI:Plans/media hosting

From Hypertwins Informatics
Jump to: navigation, search


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

File Uploading

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.

Serving Media

There are at least two open-source JavaScript libraries (video.js, Kaltura) for serving video via HTML5. I've tried one, which is very easy to use, and plan to experiment with the other one soon.

There are also numerous open-source JavaScript audio players, one of which (audiojs) I'm experimenting with. So far I haven't been able to get it to work, but technically this is less challenging.