PopcornOpenVideoAPI
Defining an Enhanced API for Video
Abstract
The HTML5 specification introduces the <audio> and <video> media elements, and with them the opportunity to dramatically change the way we integrate media on the web. The current HTML5 media API provides ways to play and get limited information about audio and video, but gives no way to programatically access or create such media.
Authors
- Anna Sobiepanek(@annasob)
- Scott Downe (@ScottDowne)
- Daniel Hodgin (@dhhodgin)
- Nick Cammarata (@nicklovescode)
Other Contributors
- Brett Gaylor (EyeSteelFilm/Mozilla Foundation,twitter: @remixmanifesto)
Status
This is a work in progress.
Lighthouse bug tracking page: Popcorn Lighthouse Account
Web Made Movies on Drumbeat: webmademovies
XML Grammar
We are trying to derive the best possible structure for all of the information needed to be stored about the video. We also do not want to repeat information, here is what we have identified would be repeating data (we called this the manifest):
See the most current XML API structure here.
Examples
We are using a short video in order to build a demo showing of the above grammar. The structure of the demo will be based on this wire-frame
Here is some of the data that will be used to describe the video. The data uses the XML grammar described above in the XML API.
<popcorn> <manifest> <people> <person id="SteveSong" name="Steve Song" > </person> <person id="mona" name="Mona" > <resource id="monahomepage" src="http://monakasra.com/" description="Mona's Homepage"/> </person> </people> <places> <place id="saopaulo" type="city" name="Sao Paulo"> <resource id="saopaulowiki" src="http://en.wikipedia.org/wiki/S%C3%A3o_Paulo" description="Sao Paulo city, Brazil"/> </place> <place id="CapeTown" type="city" name="Cape Town"> <resource id="capetownwiki" src="http://en.wikipedia.org/wiki/Cape_Town" description="Cape Town, South Africa"/> </place> </places> <attributions> <attribution id="attrib" nameofwork="A Shared Culture" copyrightholder="Jesse Dylan" license="CC-BY-NC" licenseurl="http://creativecommons.org/licenses/by-nc/2.0/"/> <attribution id="villagetelcoattrib" nameofwork="Village Telco" copyrightholder="Richard Mills" license="CC-BY-NC" licenseurl="http://creativecommons.org/licenses/by-nc/2.0/"/> </attributions> <articles> <resource id="villagetelco" src="http://en.wikipedia.org/wiki/Village_telco" description="The Village Telco"/> </articles> </manifest> <timeline> <resources> <footnote in="00:00:00" out="00:15:00" target="footnotediv">This video made exclusively for drumbeat.org </footnote> <videotag in="00:00:05:02" out="00:00:10:07">Steve Song</videotag> <attribution in="00:00:05:02" out="00:00:10:07" target="container5" resourceid="villagetelcoattrib"></attribution> <twitter in="00:00:05:02" out="00:00:10:07" title="Steve Song" source="from:stevesong" target="personaltwitter" width="238" height="120" overlay="images/overlay/twitter.png" /> <wiki in="00:00:05:02" out="00:00:10:07" resourceid="villagetelco" numberOfWords="200" target="wikidiv" overlay="images/overlay/wiki.png"/> <flickr in="00:00:05:02" out="00:00:10:07" target="personalflickr" userid="78868639@N00" numberofimages="8" padding="4px" overlay="images/overlay/flickr.png"/> <googlenews in="00:00:05:02" out="00:00:10:07" target="googlenewsdiv" topic="Village Telco"/> </resources> <map> <location resourceid="capetownwiki" in="00:00:03:00" out="00:00:11:07" lat="-33.9238" long="18.4233" target="container2" zoom="8"/> </map> <subtitles> <subtitles language="en" align="center"> <subtitle in="00:00:00:03" out="00:00:01:06">All right let's take a look and show me some</subtitle> <subtitle in="00:00:01:06" out="00:00:03:00">of the neat things you can do on the internet</subtitle> <subtitle in="00:00:05:00" out="00:00:07:00">Have you ever wondered if there is a common thread</subtitle> <subtitle in="00:00:07:01" out="00:00:09:00">that exists between open source</subtitle> <subtitle in="00:00:09:01" out="00:00:11:00">phone hackers in South Africa, </subtitle> </subtitles> <subtitles language="fa" align="center"> <subtitle in="00:04:00:08" out="00:04:01:09">My name is Mona Kasra</subtitle> <subtitle in="00:04:01:10" out="00:04:03:11">and I'm building a better Internet</subtitle> </subtitles> </subtitles> <credits></credits> </timeline> </popcorn>
Getting involved
Currently the popcorn.js community is very small mainly due to the fact that project has just begun. We urge the video community to get involved and help with development in order to ensure an easy to use and adaptable library. There are many ways one can get involved; some include critiquing current work, filling tickets/bugs, requesting additional functionality, spreading the word, and helping with documentation. Included below are ways to keep track of popcorn.js.
Download Source
We have started a GitHub repository popcorn-js feel free to fork from it or download the source.
Issue Tracker
We have started a Lighthouse project. It is public so feel free to add tickets.
IRC
To get involved in the conversation or just stop by to see whats happening visit the #popcorn channel at irc://moznet/popcorn