A live "Now Playing" overlay for OBS, a JSON API for bots and custom builds, and more โ all connected to your PlaySafe player automatically.
Get started freeA transparent widget that sits in any corner of your scene. It fades in automatically when a song starts and hides when playback stops โ nothing to configure mid-stream.
The overlay uses a transparent background โ it blends into any stream scene without a box or border showing.
Visit Account โ Streaming to find your personal overlay URL. It's unique to your account.
In your OBS scene, click + in the Sources panel, choose Browser, paste your overlay URL, and set size to 440 ร 70 px.
Open the PlaySafe player in your browser and hit play. The overlay updates within 5 seconds โ no refresh needed, no manual input.
Any streaming software that supports a Browser / Web Page source works the same way. The steps are identical: add a browser source, paste your overlay URL, set the width to 440 and height to 70.
Every PlaySafe account comes with a public JSON endpoint. Poll it from any application โ Discord bots, custom HTML overlays, Elgato Stream Deck plugins, or anything else you can build.
Response when playing:
{
"idle": false,
"title": "Neon Drift",
"genre": "Synthwave",
"thumbnail_url": "https://...",
"updated_at": "2026-04-21 09:14:02"
}
Response when idle:
{
"idle": true
}
const res = await fetch('https://playsafemusic.com/api/now-playing?token=YOUR_TOKEN');
const data = await res.json();
if (!data.idle) {
channel.send(`๐ต Now playing: **${data.title}** (${data.genre})`);
} else {
channel.send('No music playing right now.');
}
<div id="np"></div>
<script>
async function update() {
const data = await fetch('https://playsafemusic.com/api/now-playing?token=YOUR_TOKEN')
.then(r => r.json());
document.getElementById('np').textContent =
data.idle ? '' : 'โช ' + data.title;
}
update();
setInterval(update, 5000);
</script>
Your token is shown in Account โ Streaming. You can reset it at any time if you need to invalidate a leaked token.
Your overlay token is a long random string that acts as a read-only key โ it lets anyone who has it see what song is playing on your account, but nothing else. It cannot be used to control playback, access your account details, or change any settings.
/overlay page and /api/now-playing endpoint do not require login, so OBS can access them without any authentication headers.All streaming tools are included in every PlaySafe subscription โ no extra charge, no setup fees.
See pricing & start free trial