PopcornOpenVideoAPI

From MozillaWiki
Jump to navigation Jump to search

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
Other Contributors
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.

Demo

We created a demo to showcase the functionality of the library. You can view it [here]

Here is some of the data that was 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 the 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 out 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 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