/StreamusChromeExtension

A YouTube video player as a Google Chrome extension

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Streamus

The most popular Chrome extension YouTube video player.

Overview

This is the repository for Streamus the browser extension. The source for Streamus' server and website are located in their own, respective repositories.

Streamus is currently supported on all derivatives of WebKit such as Chrome, Opera, Slimjet, and Iron. Additionally, it will support Edge once stable.

It can be installed through the Chrome Web Store, the Opera Web Store, or from the Streamus website

Development

Start by cloning the development branch. All PRs should be submitted to the development branch.

Dependencies

You will need to have [Node](https://nodejs.org/), [Grunt](http://gruntjs.com/), and [jspm](http://jspm.io/) installed on your system. After installing Node, navigate using a terminal to the directory in which you cloned Streamus. Then, perform the following command to install dependencies:

npm install jspm install

Compiling code

Streamus' CSS is compiled via [LESS](http://lesscss.org/) and much of it's JavaScript is transpiled via [Babel](https://babeljs.io/). Run the following command from your terminal to build a usable version of Streamus:

grunt compile

This command will parse all currently existing .less files and transform them into .css. Then, it will compile all ES6 JavaScript files into their equivalent ES5 syntax. Then, it will begin to watch for modifications to those files and automatically re-compiled as needed. All compiled files go into the /compiled directory.

API keys

You will need to modify the example key files located in the [/js/background/key/](https://github.com/MeoMix/StreamusChromeExtension/tree/Development/src/js/background/key) directory. Copy `youTubeAPIKey.js.example`, rename it to `youTubeAPIKey.js` and replace the example API key with your own. Production keys are not committed to GitHub. The example key provided should not be relied upon for anything other than testing and it may be revoked without warning. You are strongly encouraged to generate your own key.

Server settings

Ensure that the property 'localDebug' is set to **false** unless you have configured an instance of Streamus' server on your local machine. The localDebug property can be found at [/js/background/application.js](https://github.com/MeoMix/StreamusChromeExtension/blob/Development/src/js/background/application.js).

Loading the extension

1. Navigate to **chrome://extensions/** 2. Ensure the checkbox labeled **Developer mode** is enabled. 3. Click the button labeled **Load unpacked extension...** 4. Select the directory **/StreamusChromeExtension/compiled** (Note: this directory won't exist by default. See Compiling code for more details)

Testing

Test cases may be ran by navigating to chrome-extension://jbnkffmindojffecdhbbmekbmkkfpmjd/test.html, but only after the extension package has been loaded into Google Chrome. Alternatively, tests may be ran through grunt via `grunt test`

Libraries

Streamus uses a fair number of third-party JavaScript libraries. Introduction of additional libraries for off-the-shelf functionality is discouraged. Non-core libraries may be removed in the near future and additional functionality should not be implemented with them.

Core

* [jQuery](http://jquery.com/) * [Backbone](http://backbonejs.org/) * [Marionette](http://marionettejs.com) * [lodash](http://lodash.com/) * [jspm](http://jspm.io//) * [SystemJS](https://github.com/systemjs/systemjs) * [Babel](https://babeljs.io/) * [Grunt](http://gruntjs.com/) * [Handlebars](http://handlebarsjs.com/)

Non-core

* [Backbone LocalStorage](https://github.com/jeromegn/Backbone.localStorage) * [Backbone Cocktail](https://github.com/onsi/cocktail) * [jQuery UI](http://jqueryui.com/)

Testing

* [Mocha](http://mochajs.org/) * [Chai](http://chaijs.com/) * [Sinon](http://sinonjs.org/)

Authors

with translation support provided by a community of volunteers.