---
title: A 24/7 Discord Radio That Throws a Release Party
description: A Discord bot played a blended, newest-first playlist of mixes around the clock and moved each new mix to the front. Then I found the new-mix job had stopped.
image: https://willcurran.com/hubfs/will-curran-brand/discord-radio-release-party-cover-nolane.png
---

[Skip to content](https://willcurran.com/blog/discord-radio-release-party#main)

[Will Curran](https://willcurran.com/)

[Home](https://willcurran.com/) [Portfolio](https://willcurran.com/portfolio) [Press](https://willcurran.com/media) [Blog](https://willcurran.com/blog) [Favorites](https://willcurran.com/favorites) [Speaking](https://willcurran.com/speaking) [Consulting](https://willcurran.com/consult) 

[Hire Will](https://willcurran.com/hire)

[Writing](https://willcurran.com/blog) Music — A 24/7 Discord Radio That Throws a Release Party [Subscribe](https://willcurran.com/blog/subscribe)

Music

# A 24/7 Discord Radio That Throws a Release Party

![](https://willcurran.com/hs-fs/hubfs/will-curran-brand/will-curran-avatar.jpg?width=44&height=44&name=will-curran-avatar.jpg)

Will Curran Jun 3, 2026 · 5 min read

<https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwillcurran.com%2Fblog%2Fdiscord-radio-release-party>

On this page

![An abstract dark scene: a row of rounded blocks stands for a queue, and one marigold block arcs over the others to the front, beside a glowing speaker ring and scattered confetti dots, next to the title A 24/7 Discord radio that throws a release party.](https://willcurran.com/hs-fs/hubfs/will-curran-brand/discord-radio-release-party-cover-nolane.png?width=1600&height=900&name=discord-radio-release-party-cover-nolane.png)

My Discord community had a radio station: a bot that sat in a voice channel around the clock and played one blended, newest-first playlist of mixes. When a new mix was published, it jumped to the front of the queue and played next, a small release party for whoever was in the room. When I went through the whole thing on June 3, 2026, I found that the part that spotted new mixes had been stopped for almost eight weeks, so for all that time a new mix had no way into the queue.

## A room is different from a link

A mix usually gets shared as a link. Each person plays it alone, whenever they get to it, if they get to it. A voice channel works more like a room. You walk in, something is already playing, and anyone else in there is hearing the same thing at the same moment.

The radio was built around that. It stayed in the channel, it played everything in one stream, and it treated a new mix as an event the room would hear together.

## One queue, newest first

The mixes lived in separate playlists, each kept newest first. A separate job merged them into one master playlist, removed duplicates, and sorted the result by publish date. The bot played that master playlist on repeat.

Sorting by date instead of by playlist meant the stream blended. You didn't sit through one playlist end to end before the next began, and the freshest mix sat at the top.

![Diagram titled A new mix goes next. Source playlists, each newest first, feed a merge step that removes duplicates and sorts by publish date. The result is one master queue that plays on repeat, shown as Mix 1, Mix 2 and Mix 3. A new mix, shown in marigold, is inserted at the slot marked Next, right after the mix that is Now playing, which is left to finish. Notes say the bot checked for an updated playlist every 30 seconds, and that the search for new mixes ran every six hours.](https://willcurran.com/hs-fs/hubfs/will-curran-brand/discord-radio-release-party-queue.png?width=1440&height=1108&name=discord-radio-release-party-queue.png)

## How a new mix jumped the queue

Every rebuild of the master playlist stamped it with an "updated at" time. The bot checked that one value every 30 seconds, which is cheap. Only when the time had moved did it read the full playlist and compare it against the mixes it had already queued.

Anything new went to the front of the live queue. If a few landed at once, they were added in reverse, so the newest played first. If nothing was playing, the new mix started right away. If something was, the new mix waited for it to end. It didn't cut off a set halfway through.

It was never instant. The check for new mixes ran every six hours, so a release party started within hours of a mix going up, not within seconds.

## Remember what you already queued

The comparison had a bug worth knowing about if you build one of these. Deciding what was new by looking at the bot's own live queue didn't hold up. When playback stopped, the current track dropped out of what the bot was tracking, so the next check saw it as new again, and the same track kept coming back as new on every cycle. The fix was to keep a separate set of every track the bot had already synced, and compare against that instead of the queue.

## Always on

Every five minutes the bot checked whether anyone was in the channel. With nobody listening it paused instead of leaving, and it picked back up when the first person walked in. A second loop rejoined the channel every two minutes if the bot had been dropped, and loaded the master playlist if it found itself idle.

The channel's status line, the small text under a Discord voice channel's name, showed the track that was playing. You could see what was on before you joined.

## The parts that were not magic

On June 3 I went through the whole radio and fixed what I found.

- **The release party had been off since April 9.** The job that found new mixes stopped and was never restarted. For 55 days a new mix had no way into the queue. I brought the job back that day, and the master playlist rebuilt.
- **Online was not the same as in the room.** The bot's process could be up while the bot itself had dropped out of the voice channel, and nothing checked for that. I added a heartbeat that reported healthy only when the radio's player was connected.

## If you are about to try this

- Test the thing people experience. A running process is not a bot in a voice channel, and a bot in a voice channel is not new music arriving.
- Keep your own record of what you have already queued, by ID. A live queue changes under you.
- Don't interrupt a mix that is playing. Put the new one next.
- Watch the feature, not only the bot. Know when the newest mix last arrived, and how long the usual gap between releases is.
- Only put mixes in the queue that you have the right to play, and that the people who made them are happy to have there.

## Build it yourself

**What it does:** a Discord bot holds a voice channel around the clock, plays a merged playlist of mixes newest first, and moves a newly published mix to the front of the queue so it plays next.

**The parts:** an open-source, self-hostable Discord music bot and a small database for its playlists. On top of that: a set of source playlists, a merge job that dedupes and sorts by publish date, and a short loop in the bot that watches for the merge and inserts new tracks at the front.

**How the pieces fit:** the merge job writes the playlist and an "updated at" time. The bot polls only that time, reads the playlist when it changes, compares against its own set of known tracks, and queues anything new at the front. A separate check confirms the bot is actually connected in the channel.

Give this to your AIHelp me build a 24/7 radio for my Discord server using \[open-source Discord music bot\]. I want one bot to stay in a voice channel and rejoin on its own if it gets disconnected. Keep my source playlists newest first, using only mixes I have permission to play. Write a job that merges those playlists, removes duplicates, sorts by publish date with the newest first, and records an "updated at" time. In the bot, add a loop that checks that time every 30 seconds, reads the playlist only when it changes, compares it against a stored set of track IDs already queued, and puts new tracks at the front of the queue without stopping the track that is playing. Show the current track in the voice channel's status line. Finally, give me a health check that fails when the bot isn't connected in the channel, and one that fails when no new mix has arrived for longer than \[normal gap between releases\].

If you run a radio for your own community, I would like to hear how you handle new drops.

Filed under [Music](https://willcurran.com/blog/tag/music)

![](https://willcurran.com/hs-fs/hubfs/will-curran-brand/will-curran-avatar.jpg?width=64&height=64&name=will-curran-avatar.jpg)

Will Curran

I spent sixteen years building one company, and I have been in the event industry since 2007. These days I write about the technology I actually use — trucks, radios, home infrastructure, and the tools that survive past the first invoice.

[All posts by Will →](https://willcurran.com/blog/author/will-curran)

Get the next one by email

One email per post. No digest, no sponsors.

[← Previous Beat-Synced Visuals for a Whole DJ Library](https://willcurran.com/blog/beat-synced-visuals) [Next → When Each Electric Forest Tier Actually Sells Out](https://willcurran.com/blog/electric-forest-tier-sell-out-times)

## Related reading

[Music My Chat Bot Called a House Set Drum and Bass 6 min read](https://willcurran.com/blog/chat-bot-called-a-house-set-drum-and-bass) [Music When the Stream Got Stuck on Song 1: Seeing Layered Mixes 7 min read](https://willcurran.com/blog/layered-mixes) [Music How I Pick the Best Live Sets for a Playlist 6 min read](https://willcurran.com/blog/best-live-sets-playlist) [Music Getting Viewers onto My Drop List Without Leaving Twitch 5 min read](https://willcurran.com/blog/drop-list-without-leaving-twitch)

[Will Curran](https://willcurran.com/)

[LinkedIn — 29,339+ followers](https://www.linkedin.com/in/willcurran) [GitHub](https://github.com/rancur) [YouTube](https://www.youtube.com/channel/UCJgscc27l4fpkWx1SeK05xg/) [Spotify](https://open.spotify.com/user/rancur) [SoundCloud DJ mixes](https://www.soundcloud.com/thewillsee) [Twitch](https://www.twitch.tv/thewillsee) [Last.fm](https://www.last.fm/user/default) [Trakt — movies & TV](https://trakt.tv/users/willcurran) [Goodreads](https://www.goodreads.com/user/show/55302838-will-curran) [Will See Music](https://www.thewillsee.com) [Arizona Meshtastic](https://azmsh.net) [Electric Forest Meshtastic](https://efmesh.com)

© 2026 Will Curran — All rights reserved. [RSS](https://willcurran.com/blog/rss.xml) [Back to top](https://willcurran.com/blog/discord-radio-release-party#main)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Will Curran",
    "url" : "https://willcurran.com/blog/author/will-curran"
  },
  "dateModified" : "2026-10-22T20:36:49.114Z",
  "datePublished" : "2026-06-03T16:00:00.000Z",
  "headline" : "A 24/7 Discord Radio That Throws a Release Party",
  "image" : [ "https://willcurran.com/hubfs/will-curran-brand/discord-radio-release-party-cover-nolane.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://willcurran.com/blog/discord-radio-release-party",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://willcurran.com/hubfs/image-1.png"
    },
    "name" : "Will Curran LLC"
  }
}
```