Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Extension for Google Chrome to replace video providers embedded Flash players with standard HTML5 video tags.
JavaScript Ruby Shell
branch: master

README

Video5
======

Extension for Google Chrome to replace video providers embedded Flash players with 
standard HTML5 video tags.


Supported
---------

* Youtube

  Youtube.com pages are not modified. You should try `Youtube HTML5 Beta
  <http://www.youtube.com/html5>`_. Youtube videos embedded on other web pages
  are supported.

* Vimeo

  Vimeo.com pages are not modified. You should try `Vimeo HTML5 Beta
  <http://vimeo.com/blog:268>`_ (click on the "Switch to HTML5 Player" link
  below any video). Vimeo videos embedded on other web pages are supported.


Extending
---------

To add support for a new video player provider,

1. Create a new .js file inside the handlers subdirectory, modeled after
   youtube.js or any other file in that directory.  Specifically, say you are
   supporting "FooVideo" in foo.js::

     // Your file MUST be wrapped in a function, and you MUST return your
     // handler object at the end of your function.
     (function() {
     
     // The constructor is passed the DOM object for the Flash plugin, the url
     // of the player.
     FooVideo = function(domObject, url) {
       this.domObject = domObject;
       this.url = url;
     };

     // Define canHandleURL() to filter the video site URL you support
     FooVideo.canHandleURL = function(url) {
       return url.match(/foo/)
     };

     // This is the “entry point” for your handler, from this point you can
     // do whatever your handler need to do to get the video final URL.
     FooVideo.prototype.start = function() {
       // ...
       // You can send a request to the background page in case you need to
       // fetch external resources using XHR.
       chrome.extension.sendRequest({action: 'ajax',
         args: {
           type: 'GET',
           url: myUrl
       }}, function(response) {
         /* do something with response.data and response.textStatus */
       });
       // ...
       // Invoke VideoHandlers.replaceFlashObjectWithVideo providing the
       // DOM object to substitute and the video URL to use. You can also
       // provide a watchURL and a downloadURL that will create links in the
       // interface for those actions.
       VideoHandlers.replaceFlashObjectWithVideo(this.domObject,
         videoURL,
         { watchURL: watchURL, downloadURL: downloadURL });
     }
     
     // This is the end, so return your handler object
     return FooVideo;
     })

2. Modify video5.js to include your new handler::
   
     VideoHandlers.register('youtube', 'foo');
                                       ^^^^^


Authors
-------

Daniel Rodríguez Troitiño (drodriguez)
  Original implementation including Youtube support

Yaohan Chen (hagabaka)
  Ideas and supporting code about the splitting the handlers code.
  Vimeo support.

Something went wrong with that request. Please try again.