Discord Rich Presence for YouTube — with the song, the cover and the lyrics.
Setup · How it works · Lyrics · Troubleshooting · Deutsch
Your friends see the song, not just "watching YouTube".
| 🎵 The song in the header | Listening to doli, szevczor - 162020, instead of the same "YouTube" for everything |
| 🖼️ Cover art | The video thumbnail, or the album art on YouTube Music |
| ⏱️ A real progress bar | With time remaining, following pauses and skips |
| 🎤 Lyrics, line by line | Moving along with the song, or as paragraphs |
| Playing, paused, on repeat, or live | |
| 🔗 A button to the video | One click and they're watching it too |
| 🌍 Five languages | English, German, Polish, Russian, Spanish — including what lands on your profile |
| 🎬 An overlay for OBS | The song, the time and the lyric on your stream — four styles, adjustable, and a plugin like any other |
| 🔌 Plugins | Drop a folder in, it turns up under Plugins with whatever it asked to have set. Nothing is installed for you — the overlay comes as an example you add yourself |
| 📚 A library you can edit | Every lyric file Overtone saved, in a list — read it, correct it, or have it transcribed again |
| 🔒 Privacy mode | Show that you're watching something, without saying what |
Every option says what it does in plain language. The strip along the bottom is a live preview of what is on your profile right now — not a mock-up — and the log says what the program is doing when something looks wrong.
About five minutes, once.
Download from the latest release and run it. No other software is needed — the app brings everything it uses.
Windows will warn that it doesn't recognise the program. That is because the file carries no paid signing certificate, not because anything is wrong with it: More info → Run anyway.
Overtone then sits in your system tray, next to the clock.
Discord identifies apps by an ID before it shows anything.
- Open the Discord Developer Portal and sign in
- New Application → give it any name → Create
- Copy the Application ID
- Paste it into Overtone's settings window, which opens on first start
This is the only fiddly step, and it is done once.
- Open
brave://extensionsorchrome://extensions - Enable Developer mode (top right)
- Load unpacked → select the
extensionfolder - Reload any YouTube tabs that were already open
Clicking the extension's icon tells you whether the bridge is up and which tab it is reading. If it says it cannot reach the app, the app is not running or the ports differ.
Settings → Activity Privacy → "Display current activity as a status message" must be on. It usually already is.
Play something. Your profile should show it within a few seconds.
Overtone is two pieces, because neither can do the job alone.
Discord's Rich Presence arrives over a local pipe that no browser extension can open. A desktop app, in turn, cannot see inside a YouTube tab. So the extension reads the player, the agent talks to Discord, and a local connection joins them — reachable only by the extension, never by a website.
Playback data comes from YouTube's own player interface rather than from scraping the page, so it survives redesigns. The extension only ever reads; it holds no permission to touch network traffic, and never runs inside YouTube's own code.
Three sources, tried in order.
1 · A lyrics database. LRCLIB is free and covers most well-known music, with the timing already right.
2 · YouTube's own subtitles. Many music videos carry the lyrics as a subtitle track. This catches songs no database knows — the subtitles must be switched on in the player.
3 · Your PC works it out. Optional, off by default. Overtone can transcribe the song locally. It takes minutes and works the processor hard, so it never helps the song that is playing — but the result is saved and is there next time.
Discord allows only a handful of presence updates per minute, which is the real constraint on lyrics. Overtone schedules its updates onto the line changes themselves, and can group short lines so none are lost. Paragraph mode goes further: several lines at once, changing only when the last of them has been sung — far easier on that budget.
Everything found is kept as a small text file on your PC, so a repeat play is instant. If the timing is off you can edit that file, and Overtone will never overwrite something you have changed.
Nothing appears on Discord
The desktop Discord app must be running — the browser version cannot receive this. Then open Overtone's settings: the sidebar shows whether Discord and the browser are connected.
It says "YouTube" instead of the song
The browser is still running the previous version of the extension. Click ↻ next to Overtone in brave://extensions, then reload your YouTube tabs. Unpacked extensions never reload themselves.
No lyrics for a song
Some tracks are in no database. Switch subtitles on in the YouTube player — Overtone can read those. For the rest there is local transcription under Transkription.
Friends can't see the button
Discord sometimes hides buttons when you view your own profile. Ask someone else what they see.
A video plays black, and the timer jumps
That is YouTube's player failing to receive data, not Overtone. It reloads such a tab automatically after twelve seconds. If it keeps happening, try switching your browser's shields off for youtube.com.
Still stuck? Open an issue with what you expected and what happened instead.
| Plugins | The overlay, how to add it, and how to write your own |
| Settings reference | Every option, and what it does |
| Architecture | How the parts fit together |
| Bridge protocol | What the extension sends the agent |
Free to use, not to sell or redistribute. Use it privately or at work, on as many of your own machines as you like, and modify it for yourself. Do not sell it, and do not publish it or its installers anywhere but this repository — link here instead.
Full terms in LICENSE; the components Overtone builds on keep their own, listed in THIRD-PARTY-NOTICES.md.
Not affiliated with Discord, YouTube or Google.

