Last updated: 2026-06-07
mprisence Bridge is a browser extension that reads media playback metadata from supported websites
(YouTube Music, YouTube, SoundCloud, Bandcamp, Tidal, Apple Music) and forwards it via native
messaging to a local binary (mprisence) running on your computer.
The extension does not communicate with any remote server. Its sole purpose is feeding web media data into the local MPRIS desktop standard so media keys and desktop integrations can work.
When you play media on a supported website, the Extension reads the following from the page DOM:
| Data | Purpose |
|---|---|
| Website URL | Identify the media source |
| Media metadata (title, artist, album) | Provide track info to MPRIS |
| Playback state (playing/paused, position, duration) | Provide playback status to MPRIS |
| Album art URL | Pass to MPRIS so desktop clients can display cover art |
All data is sent via native messaging to the mprisence binary on your machine.
That binary publishes MPRIS players on D-Bus so desktop applications (media keys, Discord via
mprisence daemon, etc.) can see your web media.
┌─────────────────────────────────────────────┐
│ Browser Extension │
│ (reads DOM, sends JSON via native msg) │
└──────────┬──────────────────────────────────┘
│ stdin/stdout (local)
▼
┌──────────────────────┐ ┌──────────────────────────┐
│ mprisence (web host) │───────▶│ D-Bus MPRIS │
│ (local binary) │pub. │ org.mpris.MediaPlayer2. │
│ │MPRIS │ mprisence_web.* │
└──────────────────────┘ └──────────────────────────┘
│
▼
Desktop integrations
(media keys, mprisence daemon,
Discord RP, etc.)
The extension itself transmits nothing to the network. All communication stays on your machine.
When you play music on YouTube Music, the extension sends a message like this to the bridge binary:
{
"type": "update",
"source_id": "firefox:tab:42:0",
"url": "https://music.youtube.com/watch?v=ABC123",
"origin": "https://music.youtube.com",
"site": "youtube_music",
"playback": {
"status": "playing",
"position_ms": 45000,
"duration_ms": 240000
},
"metadata": {
"title": "Song Title",
"artist": ["Artist Name"],
"album": "Album Name",
"album_artist": ["Artist Name"],
"art_url": "https://i.ytimg.com/vi/ABC123/hqdefault.jpg"
},
"capabilities": {
"play_pause": true,
"next": true,
"previous": true,
"seek": true,
"set_position": true
}
}
The extension transmits only this data. No cookies, no history, no personal identifiers
beyond a tab-scoped source ID (source_id).
Data is processed in real-time and is not persistently stored by the Extension or the native messaging host.
data_collection_permissions: ["none"]. Verified by AMO on submission.The Extension reads data from the DOM of supported websites (as listed in the manifest). It does not communicate with any third-party API or server.
Downstream tools (e.g., the mprisence daemon, Discord) are separate software and subject to their own privacy policies.
When this policy changes, the "Last updated" date updates. Material changes documented in the extension's update notes.
For questions about this privacy policy or the Extension's data practices, open an issue at: https://github.com/lazykern/mprisence/issues