Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

The HTML5 Media Framework

This branch is 0 commits ahead and 0 commits behind master

Octocat-spinner-32 build Simplified unit tests and added warning being thrown by lint to its i… September 14, 2011
Octocat-spinner-32 demos Bug NOBUG - Delete rogue .DS_Store in repo September 20, 2012
Octocat-spinner-32 effects [#826] Removed preload=none in the applyclass html file. Also did a b… January 04, 2012
Octocat-spinner-32 ie8 Merge pull request #160 from cadecairos/t1236 July 24, 2012
Octocat-spinner-32 modules [#1313] Fix leaking variable "srcLength" in popcorn.player.js September 14, 2012
Octocat-spinner-32 parsers Merge pull request #158 from cadecairos/t1235 July 24, 2012
Octocat-spinner-32 players [#1254] Youtube player using the wrapper. January 23, 2013
Octocat-spinner-32 plugins [#924] Added a toString option for the majority of our plugins. Disre… July 31, 2012
Octocat-spinner-32 test [t1423] Ensure Start/end functions are not called unneccesarily with … February 04, 2013
Octocat-spinner-32 tools Fix CRLF February 08, 2011
Octocat-spinner-32 unsupported [#924] Added a toString option for the majority of our plugins. Disre… July 31, 2012
Octocat-spinner-32 wrappers [#1436] fixes for better timing on the null player. February 19, 2013
Octocat-spinner-32 .gitignore [#665] Adds .DS_Store to .gitignore July 26, 2011
Octocat-spinner-32 .gitmodules Update and move sequence submodule. Slim Makefile September 26, 2011
Octocat-spinner-32 AUTHORS [#1238] Fix typo in matt's name July 24, 2012
Octocat-spinner-32 Bug 1237 - Add CHANGELOG to repository July 24, 2012
Octocat-spinner-32 LICENSE added license [#263 state:peer-review] February 08, 2011
Octocat-spinner-32 LICENSE_HEADER Add license header to all *.min.js files. April 20, 2011
Octocat-spinner-32 Makefile Bug 1308 - Include wrappers in popcorn-complete.js August 27, 2012
Octocat-spinner-32 example.html Merge branch '313' into 0.3 February 08, 2011
Octocat-spinner-32 popcorn.js [t1423] Ensure Start/end functions are not called unneccesarily with … February 04, 2013
Octocat-spinner-32 [#1240] Updated mailing list in README July 24, 2012
Octocat-spinner-32 tests.conf [#1123] Popcorn Media Wrappers: YouTube, Vimeo, SoundCloud, Audio, Vi… August 07, 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.

Something went wrong with that request. Please try again.