The HTML5 Media Framework
Pull request Compare This branch is 103 commits behind mozilla:master.
Failed to load latest commit information.
build Simplified unit tests and added warning being thrown by lint to its i… Sep 14, 2011
demos Bug NOBUG - Delete rogue .DS_Store in repo Sep 20, 2012
effects/applyclass [#826] Removed preload=none in the applyclass html file. Also did a b… Jan 4, 2012
ie8 Merge pull request #160 from cadecairos/t1236 Jul 24, 2012
modules [#1313] Fix leaking variable "srcLength" in popcorn.player.js Sep 14, 2012
parsers Merge pull request #158 from cadecairos/t1235 Jul 24, 2012
players [#1254] Youtube player using the wrapper. Jan 23, 2013
plugins [#924] Added a toString option for the majority of our plugins. Disre… Jul 31, 2012
test [t1423] Ensure Start/end functions are not called unneccesarily with … Feb 4, 2013
tools Fix CRLF Feb 8, 2011
unsupported [#924] Added a toString option for the majority of our plugins. Disre… Jul 31, 2012
wrappers [#1436] fixes for better timing on the null player. Feb 19, 2013
.gitignore [#665] Adds .DS_Store to .gitignore Jul 26, 2011
.gitmodules Update and move sequence submodule. Slim Makefile Sep 26, 2011
AUTHORS [#1238] Fix typo in matt's name Jul 24, 2012 Bug 1237 - Add CHANGELOG to repository Jul 24, 2012
LICENSE added license [#263 state:peer-review] Feb 8, 2011
LICENSE_HEADER Add license header to all *.min.js files. Apr 20, 2011
Makefile Bug 1308 - Include wrappers in popcorn-complete.js Aug 27, 2012
example.html Merge branch '313' into 0.3 Feb 8, 2011
popcorn.js [t1423] Ensure Start/end functions are not called unneccesarily with … Feb 4, 2013 [#1240] Updated mailing list in README Jul 25, 2012
tests.conf [#1123] Popcorn Media Wrappers: YouTube, Vimeo, SoundCloud, Audio, Vi… Aug 7, 2012


Mozilla's HTML5 Video Framework:


Popcorn.js is Mozilla's HTML5 video and media library for the open web. It allows web developers, filmmakers, artists, designers and others to easily create timeline based web productions. Popcorn.js helps simplify media API and implementation differences between browsers and includes a powerful event system and a rich plugin architecture and plugins.

Popcorn.js can be used with almost any media type you can imagine, from HTML5 audio and video, to YouTube and Vimeo, to SoundCloud, etc. Popcorn.js also has plugins to allow content from popular web sites and services to be integrated easily, for example, Wikipedia, Twitter, Facebook, Google Maps, etc.

Anything you can do on the web can be turned into a Popcorn.js plugin, and become part of a timeline-based web experience. Popcorn.js breaks video out of the box and allows media to fully interact with the rest of the web.

Try a live code example here.


The Popcorn.js community is a mix of developers, filmmakers, artists, and everything in between. If you are interested in using Popcorn.js or helping us build it, you can use one or more of the following:

For Developers

You can follow the project's bugs and activity here.

Project workflow and developer guidelines are available here.

For Plugin Authors

Popcorn.js offers a powerful plugin architecture. Plugins are a way for developers to wrap web functionality and allow it to be placed on a timeline, responding to a point in a video or other media resource.

Take a look at our growing gallery of officially supported plugins.

Have you built a cool plugin, or have an idea for one? Let us know!


Popcorn.js is made available under the MIT License.


Popcorn.js is built and maintained by a growing community, with the support of:


A changelog can be found here.