cd /news/ai-agents/hands-off-dj-for-my-child-s-baptism-… Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-135693] src=dev.to β†— pub= topic=ai-agents verified=true sentiment=Β· neutral

Hands-off DJ for my child's baptism: Spotify, djay, an iPad, and an agent that ignored the brief

A developer used Hermes, a homelab agent, and Claude Code to build a 101-track, 6.2-hour Spotify playlist for a child's baptism party, played hands-off via djay Pro on an iPad. The first attempt failed because the Spotify skill lacked a brief-based playlist mode, so the agent defaulted to its weekly-mix routine and produced 60 tracks of 90s and modern rap with duplicates and explicit songs. The developer rebuilt the playlist manually with Claude Code and documented Spotify API changes, including the /playlists/{id}/tracks to /items migration that returns misleading 403 errors.

by read4 min views1 publishedSep 21, 2026

My child's baptism party was at a pub. I wanted proper music β€” a black music jukebox, not a Spotify "Chill Hits" playlist β€” and I did not want to spend the day standing over an iPad.

This is how that worked: Hermes (the agent that runs on my homelab) and Claude Code built the playlist between them, and the iPad just played it. It also covers the part that didn't work, because the first version the agent built was wrong in a way that would have been embarrassing at a christening.

I wrote a structure, not a list of songs:

And a reference: Chuckie Online's mixes β€” his apartment life mix and his BBC 1Xtra R&B Slow Jamz mix. The instruction was that his selection is the base, not a flavour.

Hermes has a Spotify skill I'd built for weekly mixes. Given the baptism brief, it didn't follow it. It ran the weekly-mix defaults instead and produced 60 tracks of 90s and modern rap, with duplicates and explicit tracks. At a baptism.

The cause was a gap, not a bad model: the Spotify tool had a "make a playlist from these genres" mode and no "build from a brief or a reference tracklist" mode. With no tool that matched the job, the agent reached for the nearest one and reported success.

Two more things the brief itself got wrong, because an LLM had helped write it:

I took it off Hermes and rebuilt it with Claude Code, using Hermes's Spotify credentials and box:

Block Opens with Length
Warm R&B Essence β€” Wizkid, Tems 40 min
Reggae / lovers rock I Feel Good β€” Beres Hammond 56 min
Afrobeats Last Last β€” Burna Boy 56 min
Afro house I Adore You β€” HUGEL, Topic 43 min
UK garage Re-Rewind β€” Artful Dodger 26 min
Old-school dancehall Heads High β€” Mr. Vegas 42 min
Modern R&B Is This Real Love? β€” Debbie 32 min
Slow jams When I See U β€” Fantasia 61 min
Outro Where Did I Go? β€” Jorja Smith β†’ By Your Side β€” Sade 18 min

101 tracks, 6.2 hours. It peaked at 233 tracks and 14.5 hours before I cut it back to the order I actually wanted.

It's worth knowing about these if you're building anything on Spotify's API in 2026:

/playlists/{id}/tracks β†’ /items, POST /users/{id}/playlists β†’ POST /me/playlists). The old paths answer 403 Forbidden, which looks exactly like a permissions problem. I lost hours re-consenting scopes before checking the path.year: / genre: filters return nothing. Era and style have to come from how you phrase the search. The player was djay Pro on an iPad, logged into Spotify inside djay, on the 7-day free trial. So the playlist Hermes's box built was just there in djay's library, and djay's Automix did the transitions. The iPad connected to the pub's speaker over Bluetooth, and it held up with no drop-outs.

You can also wire it: a USB-C (or Lightning) to 3.5mm/aux adapter into the pub's mixer or amp. Wired is the safer choice if the speaker is a long way away or the room is full of phones. It also has no Bluetooth delay, and with a USB audio interface you get a headphone output to hear the next track before the room does β€” which is what you'd need to mix by hand.

The settings that made it hands-off: The only thing a human does is steer: if the room is ready early, jump to the first song of the Afrobeats block; when people start leaving, jump to the slow jams, then the outro. The blocks mean that one tap changes the mood without breaking the flow.

Did: hold the Spotify skill, credentials and scheduling that everything else ran on. The two timers that finished the playlist ran on its box, unattended, the night before the party.

Didn't: build this playlist. Given the brief, it ran the wrong job and called it done; the actual build was done by hand with Claude Code. The fix wasn't a better prompt. It was noticing that the tool had no mode for the job, so the agent improvised.

That's the lesson I keep relearning with agents: when there's no tool that fits the job, they don't stop and say so β€” they use the nearest tool and report success. Check the output against the brief, not against the agent's summary.

πŸ€– Drafted with AI assistance from my own homelab notes, logs and repos, then reviewed and edited before publishing.

── more in #ai-agents 4 stories Β· sorted by recency
── more on @hermes 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/hands-off-dj-for-my-…] indexed:0 read:4min 2026-09-21 Β· β€”