Loading page...
Loading page...
A history-revision tool I'd have loved as a teenager: Romanian historical figures singing their own stories across metal, pop, trap, and manele. Two AI agents — Claude and Codex — run most of the pipeline, from cross-checked lyrics and synced lyric videos to portrait Shorts, auto-uploaded YouTube content, and matching quizzes. Free for students cramming for the history baccalaureate.

Decebal Cântă — AI-automated history songs
Honestly? I got jealous of teenagers. Revising for exams with AI looks like genuine fun — then it hit me that I'm an adult, so I can have the fun without the exams. Decebal Cântă is what came out: Romanian historical figures narrating their own stories in original, actually-catchy songs, free for the kids cramming for the baccalaureate. The real experiment is how much of the pipeline two AI coding agents — Claude and Codex — can run between them: drafting and cross-checking the lyrics, rating the versions, aligning them word by word, rendering the videos, cutting portrait Shorts, and publishing to YouTube. I mostly curate — pick the winners, keep the bots honest about history, and tap the handful of buttons that would otherwise break someone's terms of service. Everything ships CC0.
Claude builds a textbook-anchored cheat sheet of facts for each historical figure, so every point the bac expects is covered before a single line of lyrics gets written.
Claude writes two versions of the song and Codex writes a third — all from the same blank-slate brief. Running two different models against the same prompt is a built-in creativity benchmark. One slash command kicks the whole thing off.
Alongside each draft, a plain-Romanian trivia file explains the jokes, propaganda phrases, and obscure references in that version's lyrics.
A Codex agent greps the textbooks and online sources for every claim across all three versions in parallel, and flags anything wrong or misleading. Claude fixes the offending lines; only Codex is allowed to stamp a version as fact-checked, and only once it passes.
If the cheat sheet changed, Claude and Codex each audit it independently and I act on what they agree on — cross-LLM agreement catches the textbook errors a single model would trust.
A Claude rater scores all three versions on meme potential, catchiness, flow, and learning density. Weak ones get scrapped and regenerated; the winner is picked automatically, and I can override it.
Final lyrics and the matching Suno tags are written to per-song JSON files.
A Next.js interface reads those JSON files so I can copy tags and lyrics, and see all three versions side by side.
I paste the versions into Suno by hand. This could easily be automated with Claude in Chrome, but that would break Suno's ToS, so I don't.
I listen to the versions while doing chores, noting favourites, off-sounding moments, and any creative ideas (which I hand back for more variants).
I download the winning WAV to my Downloads folder. Claude spots it there and copies it into the song directory — I never touch the folder myself.
A single slash command triggers the video and publishing steps.
WhisperX runs forced alignment on a local Windows GPU box — it extracts the vocal stems itself for better accuracy — using the real lyrics as ground truth. If alignment fails, the pipeline stops and asks rather than quietly degrading the render.
A Claude subagent groups the timed words into logical on-screen lyric blocks.
A little Next.js editor I vibecoded with AI lets me nudge the lyric timings by hand — fast and frictionless — on the few spots STT lands slightly off. The one step where a quick human eye still beats automation.
A "Re-place facts" button runs a Codex task that drops "did you know" popups into the instrumental gaps, grounded in the cheat sheet.
Remotion renders the lyric video with the fact popups, and ffmpeg muxes the original audio track on top — both triggered from the editor.
A 1280×720 thumbnail is generated from the song and queued for upload.
The YouTube Data API uploads the video with its title, description, tags, and thumbnail pre-filled — straight from the editor.
I flip the video to public by hand — YouTube really does not want that automated, for good anti-spam reasons. Fair.
A second skill cuts the catchiest verse and chorus into fresh portrait renders (not crops of the landscape video), writes a punchy hook for each, and uploads them as YouTube Shorts.
The YouTube link is written back into the song JSON, and the Next.js page automatically swaps the Suno-tags view for an embedded YouTube player.
Claude generates a 12–16 question quiz from the facts in both the song and the cheat sheet, marking which ones the song actually covers.
A Codex agent independently verifies the quiz's questions, answers, and explanations before it ships.
The changes are committed and pushed to GitHub, which auto-deploys the updated site to Vercel.