By: Zoe Hart
Inspect and view changes in Keyboard Media Controls source codes across current and past versions
Please login to examine the extension's source code.
manifest.json
{
"manifest_version": 2,
"short_name": "__MSG_extensionName__",
"name": "__MSG_extensionName__",
"version": "2.5.2",
"description": "__MSG_extensionDescription__",
"icons": {
"64": "icon64.png",
"128": "icon128.png"
},
"browser_specific_settings": {
"gecko": {
"id": "{176123d6-ddb5-38bb-5220-bc6d2469e352}",
"strict_min_version": "129.0"
}
},
"background": {
"page": "index.html"
},
"commands": {
"MediaPlayPause": {
"description": "toggles play state of the last active media website",
"suggested_key": {
"default": "MediaPlayPause"
},
"global": true
},
"MediaNextTrack": {
"description": "plays the next track for the last active media website",
"suggested_key": {
"default": "MediaNextTrack"
},
"global": true
},
"MediaPrevTrack": {
"description": "plays the previous track for the last active media website",
"suggested_key": {
"default": "MediaPrevTrack"
},
"global": true
},
"MediaStop": {
"description": "stops playback of the last active media website",
"suggested_key": {
"default": "MediaStop"
},
"global": true
}
},
"options_ui": {
"page": "options/options_ui.html",
"browser_style": false,
"chrome_style": false,
"open_in_tab": false
},
"permissions": [
"storage"
],
"optional_permissions": [
"*://*/"
],
"content_scripts": [
{
"matches": [
"*://*.youtube.com/*"
],
"js": [
"lib/browser-polyfill.min.js",
"data/youtube.com-orchestrator.js"
],
"all_frames": true
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/pandora.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.pandora.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/tidal.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.tidal.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/music.apple.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.music.apple.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/bandcamp.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.bandcamp.com/*",
"*://shop.attackthemusic.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/play.google.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.play.google.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/play.spotify.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.play.spotify.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/player.spotify.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.player.spotify.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/open.spotify.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.open.spotify.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/soundcloud.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://soundcloud.com/*"
]
},
{
"matches": [
"https://w.soundcloud.com/player/*"
],
"all_frames": true,
"js": [
"lib/browser-polyfill.min.js",
"data/w.soundcloud.com-orchestrator.js"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/stitcher.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://app.stitcher.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/music.yandex.ru-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.music.yandex.ru/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/vk.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.vk.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/radio.yandex.ru-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.radio.yandex.ru/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/deezer.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.deezer.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/overcast.fm-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.overcast.fm/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/plex.tv-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.plex.tv/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/pluralsight.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.app.pluralsight.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/jamstash-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.jamstash.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/jango.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.jango.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/kanopy-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.kanopy.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/koel-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.koel.phanan.net/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/subsonic-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.demo.subsonic.org/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/madsonic-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.demo.madsonic.org/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/music.amazon-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.music.amazon.com/*",
"*://*.music.amazon.de/*",
"*://*.music.amazon.co.uk/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/cbcmusic.ca-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.cbcmusic.ca/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/mixcloud.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.mixcloud.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/hulu.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.hulu.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/hypem.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.hypem.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/netflix.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.netflix.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/npr.org-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.npr.org/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/tunein.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.tunein.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/play.pocketcasts.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://play.pocketcasts.com/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/di.fm-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.di.fm/*"
]
},
{
"js": [
"lib/browser-polyfill.min.js",
"data/udemy.com-view.js",
"data/finder.js",
"data/orchestrator.js"
],
"matches": [
"*://*.udemy.com/*"
]
}
],
"web_accessible_resources": [
"data/youtube.com-orchestrator-pageScript.js"
]
} Best Keyboard Media Controls Alternatives
Here are some Firefox add-ons that are similar to Keyboard Media Controls:
Streaming Keyboard Controls
Aysha Quinn
Multi-Platform Media Keys
Herbert Gaines
Universal Media Controller
Barry Hayes
Media Key Manager
Rosalinda
Media Keys
Carlin
Volume Control Media Keys
Amanda
Easy Control
Adam Nickle
Media Center
jojojo
Spotify Playback Keys
Musa
SoundCloud Keyboard Controller
Blaine
Better Media Keys for YouTube
TroyWare
Global-media-controller
Rohit ANand