From the studio
Automating Our Karaoke Production Process: From Bookmarklet To Publish
I’m currently watching a high-quality music video in my web browser. Today I’m at my desk; yesterday I was on my phone. As I’ve done hundreds of times prior, I click a magic bookmark, confirm the artist and title, and a multi-system, multi-stage karaoke production workflow is underway.
Behind that small interaction are several programming languages, multiple operating systems, cloud services, and a combination of audio processing, text preparation, graphic design, and file management. Here’s a preview of how those layers fit together.
The first layer is a JavaScript bookmarklet: a small program saved as a browser bookmark that runs in the context of the current webpage. Mine captures the recording’s URL, prompts me to confirm the artist and track title, and passes those details on to a cloud service called TRIGGERcmd. That service lets me remotely trigger commands on my configured Windows, Mac, or Linux computers.
Next up, we’re taking a brief detour into old-school Windows automation: a batch script. It launches the Python workflow, which decodes the incoming song information and starts coordinating the remaining steps.
Python handles most of that coordination: creating a session for the song, tracking the individual stages, running helper commands, communicating with remote APIs, and requesting work from artificial intelligence services. It also puts the finished assets in their appropriate places in Dropbox so that a human like myself can finish the job. Yeah, believe it or not, I actually wrote most of this article.
The toolkit has evolved across Windows, macOS, and Linux over numerous iterations on multiple physical machines. The current automated workflow divides its work between a Windows PC and my old 2016 MacBook Pro, with cloud services handling specialized processing.
The Windows computer manages the overall sequence, downloads and transcodes the recording, generates publishing copy, and coordinates audio stem separation. The Mac retrieves and formats the lyrics, then uses Bash scripts to generate title and thumbnail graphics from existing backgrounds, fonts, and layout rules. Shared files carry instructions and results between the machines, while remote commands tell the receiving computer when there’s work to do.
There’s also some less glamorous automation keeping everything together. Files take time to sync, connections fail, and remote processing doesn’t always finish on the first attempt. The workflow saves its progress and checks the resulting files, allowing another bookmark click to resume an existing session instead of blindly repeating everything.
I’ve automated most of the repetitive preparation, but the finishing work still needs my attention. Even if I could automate every last step, I would have a hard time releasing tracks that hadn’t received the proper volume adjustments and the human stamp of approval.
After lyric synchronization is complete, I may even record a backing vocal track myself, although that’s become increasingly rare as machine-learning models have gotten better at separating lead vocals from the backing vocals I want to keep. Then I’ll usually take a breather before final video assembly: piecing together the title screens, synchronized lyrics, custom animations, and branding.
I’ve always enjoyed the karaoke production process. It offers an intimate listening experience that I simply don’t get in the car or through my headphones at the gym. By the time a track is finished, I’ve spent time with its harmonies, phrasing, and little background details—and all of that started with a bookmark.