All Projects → f1u77y → Web Media Controller

f1u77y / Web Media Controller

Licence: unlicense
Allows controlling media player on different sites with Media Player widget on your desktop

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Web Media Controller

Sponsorblock
Skip YouTube video sponsors (browser extension)
Stars: ✭ 3,627 (+9975%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension, chromium
Mue
Fast, open and free-to-use new tab page for modern browsers
Stars: ✭ 56 (+55.56%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension, chromium
Google Music Hotkeys
Browser extension that adds keyboard control to Google / YouTube Music
Stars: ✭ 25 (-30.56%)
Mutual labels:  chrome-extension, firefox, firefox-extension, chromium
Surfingkeys Conf
A SurfingKeys configuration which adds 130+ key mappings for 20+ sites & OmniBar search suggestions for 50+ sites
Stars: ✭ 137 (+280.56%)
Mutual labels:  chrome-extension, chrome, firefox, chromium
Markdown Viewer
Markdown Viewer / Browser Extension
Stars: ✭ 497 (+1280.56%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Easy To Rss
🚀 Chrome/Firefox Extension to retreive RSS feeds URLs from WebSite, RSSHub supported
Stars: ✭ 386 (+972.22%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Web Extension Starter
Typescript, React, Redux, Styled-Component and Webpack based sample extension boilerplate. Runs on Chrome and Firefox. Sample chrome extension.
Stars: ✭ 115 (+219.44%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Extanalysis
Browser Extension Analysis Framework - Scan, Analyze Chrome, firefox and Brave extensions for vulnerabilities and intels
Stars: ✭ 351 (+875%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Better Onetab
📑 A better OneTab for Chrome 📝 Temporarily removed from firefox ⚠️ without maintaining in a period & any cooperative purpose are welcome
Stars: ✭ 1,097 (+2947.22%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Floccus
☁️ Sync your bookmarks privately across browsers
Stars: ✭ 2,630 (+7205.56%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Github Mermaid Extension
A browser extension for Chrome, Opera & Firefox that adds Mermaid language support to Github
Stars: ✭ 170 (+372.22%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Bypass Paywalls Chrome
Bypass Paywalls web browser extension for Chrome and Firefox.
Stars: ✭ 20,876 (+57888.89%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Browser Addon
Kee adds free, secure and easy password management features to your browser which save time and keep your private data more secure.
Stars: ✭ 386 (+972.22%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Save In
WebExtension for saving media, links, or selections into user-defined directories
Stars: ✭ 99 (+175%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Webextension Toolbox
Small CLI toolbox for cross-browser WebExtension development
Stars: ✭ 365 (+913.89%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
The Tab Of Words
A minimal Chrome / Firefox extension to help you learn Japanese words in each new tab.
Stars: ✭ 94 (+161.11%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Disable Javascript
Adds the ability to disable JavaScript on specific sites.
Stars: ✭ 151 (+319.44%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Simpread
简悦 ( SimpRead ) - 让你瞬间进入沉浸式阅读的扩展
Stars: ✭ 5,352 (+14766.67%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Startpage
A minimal starpage for Chrome and Firefox
Stars: ✭ 240 (+566.67%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension
Template Browser Extension
A browser extension starter for Chrome and Firefox
Stars: ✭ 28 (-22.22%)
Mutual labels:  chrome-extension, chrome, firefox, firefox-extension

This project is now abandoned due to its redundancy

TLDR: browsers support this add-on functionality out-of-box, and even more, now website owners are ones developing the connectors, so there will be no need to adapt to all these design changes and rely on unstable internal API.

Web Media Controller

Description

Web Media Controller is a browser extension which helps controlling media playback on various websites with different tools. These tools include but aren't limited to keyboard shortcuts and desktop widgets. One of these tools is wmc-mpris. Unfortunately, all these tools cannot be cross-platform, so this tool works only on desktop GNU/Linux distributions.

It's completely unusable without these tools!

Usage

Install this extension and one of those tools. Usage instructions are different for each of them, so consider reading tools' docs. Usually they're desktop widgets or daemons that interact with other desktop widgets or provide keyboard-only control themselves.

Note for Chrome/Chromium users: this browser has built-in support for media key handling. It has one big advantage over this extension: media keys can be used on pretty much all websites with media. From the other hand, it doesn't share any info about what is playing. So, it's up to you to decide what to use. If you still want to use WMC, you might have wanted to disable built-in media keys handling, which is done by turing off the flag chrome://flags/#hardware-media-key-handling.

Tools

  • wmc-mpris (Works on GNU/Linux and should work on BSD)
  • WebNowPlaying (Rainmeter plugin; works on Windows)
  • wmc-win (Native Windows media key controller)
  • Feel free to develop your own tool

Supported websites

Feel free to request support for any other music website or, even better, provide it yourself. See this documentation for learning the basic of writing a connector for a specific website.

Distribution

This project is distributed on Mozilla Add-ons. I'll add it to Chrome Web Store (and maybe Opera add-ons, if it's compatible) on request. You could also get Firefox and Chrome extension from GitHub releases.

Another way to use the extension is to build the extension and then pack it or use as temporary extension (warning: temporary extensions are removed at the end of session in Firefox). It should work on any of latest major browsers: Chromium (Chrome), Firefox and Opera.

Building

Development

For hacking the extension, you'll need Node.js and npm installed and available in your $PATH for building.

$ npm install
$ npx grunt build:$browser # $browser could be 'firefox' or 'chrome'

The extension is now built in build/$browser/. You could load it as temporary extension or pack it.

If you're developer, and you want build/$browser/ to correspond the current state of development, you should run npx grunt watch:$browser.

Note that every time you'll restart your browser, it won't load your version of the extension in build/$browser/.

Packing

If you want to pack the extension for permanent use, you will need to sign it. For every browser the instructions are a little bit different.

Firefox

For packing the extension for Firefox, you'll need an API key and API secret from Mozilla, You can get them via this interface.

After you'll get your credentials, you can either put them in the following environmental variables, as suggested here:

export WEB_EXT_API_KEY=<your apiKey>
export WEB_EXT_API_SECRET=<your apiSecret>

Alternatively, you can put them in a file inside the extension directory, call this file ./.amo.json:

{
  "apiKey": "<your apiKey>",
  "apiSecret": "<your apiSecret>"
}

Firefox doesn't allow to sign an extension that is owned by someone else currently @f1u77y so you will need to change the ID of it specified in the file firefox_manifest.json. For example:

{
    "applications": {
        "gecko": {
            "id": "[email protected]",
            "strict_min_version": "48.0"
        }
    },

    "options_ui.browser_style": true
}

NOTE: Since you probably use this along with wmc-mpris, you will need to change the id of the extension as specified in the native-messaging JSON file as well before building and installing it. Firefox' file is named me.f1u77y.web_media_controller.firefox.json. According to our example above, the file should look like this:

{
    "name": "me.f1u77y.web_media_controller",
    "description": "Allows controlling VK player via MPRIS",
    "path": "@[email protected]",
    "type": "stdio",
    "allowed_extensions": [
        "[email protected]"
    ]
}

Don't forget to manually rebuild wmc-mpris or alternatively put a file equivalent to the one showen above in ~/.mozilla/native-messaging-hosts/.

In order to finally build and sign the extension, run:

npx grunt webext_builder:firefox

Chrome

Very much like Firefox, Chrome also requests developers to sign their packages. You can either use Chrome's GUI to pack the extension or using the development environment to do so. In any case, you will need to create a private key with the following command:

openssl genrsa 2048 | openssl pkcs8 -topk8 -nocrypt > ./.cws.private.pem
# recommended
chmod og-r ./.cws.private.pem

Finally packing the extension with Chrome's GUI can be done using the ./.cws.private.pem you've just generated or with a private key Chrome will generate by itself. See this stack overflow question for more details.

Licensing

Icons in icons/ directory are part of Breeze Icons and distributed under terms of LGPL. All other code is released into the public domain (see LICENSE). All contributions to this projects are released into the public domain too.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].