By: Barry Hayes
Inspect and view changes in Universal Media Controller 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": "{176129d6-ddb5-38bb-5620-bc6d2489e852}",
"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 Universal Media Controller Alternatives
Here are some Firefox add-ons that are similar to Universal Media Controller:
Keyboard Media Controls
Zoe Hart
Media Key Manager
Rosalinda
Multi-Platform Media Keys
Herbert Gaines
Media Keys
Carlin
Global-media-controller
Rohit ANand
Streaming Keyboard Controls
Aysha Quinn
Easy Control
Adam Nickle
Simple Media Controller
KAMI
Media Center
jojojo
Volume Control Media Keys
Amanda
Multi-Device Media Keys
Dulcie
UME - Ultimate Media Extention
ABDev