The RECORDED LOCATIONS Episode Builder
What you'll learn
~20 min- Build a folder-to-publish CLI workflow for a YouTube series
- Generate episode titles, descriptions, timestamps, and thumbnail concepts
- Create a consistent publishing checklist for every episode
- Integrate series branding and tracklist formatting into automated output
What you’re building
RECORDED LOCATIONS is your YouTube series — you record sets in different locations, each episode has its own vibe, tracklist, and story. But turning raw footage into a published YouTube video means a pile of metadata work: writing a description, formatting the tracklist with timestamps, coming up with title options, drafting thumbnail text, and going through a publish checklist so you don’t forget to add end screens or set the premiere time.
You’re going to build a tool that takes a folder of episode notes and generates all of that in one command.
The episode folder
For each episode, create a folder with a simple notes file. This is your input:
episodes/s2e04-warehouse/ notes.jsonHere’s what notes.json looks like:
{ "series": "RECORDED LOCATIONS", "season": 2, "episode": 4, "location": "The Warehouse, Richmond VA", "date": "2026-02-22", "mood": "Dark, industrial, raw energy", "duration": "58:30", "tracklist": [ { "time": "0:00", "artist": "moodmixformat", "title": "JADED", "label": "Unreleased" }, { "time": "6:15", "artist": "Anyma", "title": "Consciousness", "label": "Afterlife" }, { "time": "12:40", "artist": "moodmixformat", "title": "KICK IT W/U", "label": "Self-released" }, { "time": "19:05", "artist": "CamelPhat", "title": "Easier", "label": "RCA" }, { "time": "25:30", "artist": "moodmixformat", "title": "LIVE IT UP", "label": "Self-released" }, { "time": "32:00", "artist": "Massano", "title": "The Underground", "label": "Afterlife" }, { "time": "38:45", "artist": "Boris Brejcha", "title": "Art of Minimal Techno", "label": "Fckng Serious" }, { "time": "45:10", "artist": "moodmixformat", "title": "MOOD", "label": "Self-released" }, { "time": "51:30", "artist": "moodmixformat", "title": "Untitled ID", "label": "Unreleased" } ], "highlights": [ "First time playing JADED live", "Crowd reaction during the KICK IT W/U drop", "Surprise B2B with a local DJ for the last 10 minutes" ], "gear": "Pioneer CDJ-3000 x2, DJM-V10, RMX-1000"}You don’t need perfect timestamps or detailed descriptions. Even rough notes work — the tool formats and polishes everything. The key is getting the tracklist order and approximate timestamps right. You can always fix timestamps after watching the final edit.
The prompt
Start your AI CLI tool and paste this prompt:
Build a Node.js CLI tool called episode-builder.js that reads a YouTube seriesepisode notes file and generates all publishing metadata.
INPUT: Path to an episode folder containing notes.json (format described below)
notes.json fields: series, season, episode, location, date, mood, duration,tracklist (array of {time, artist, title, label}), highlights (array of strings),gear (string)
OUTPUT: Generate these files in the same episode folder:
1. titles.md — 5 title options in this format: - "RECORDED LOCATIONS S2E04 | The Warehouse, Richmond VA" (standard) - A mood-based variation - A tracklist-teaser variation (mentioning 1-2 key tracks) - A location-focused variation - A short punchy variation for Shorts Each title should be under 100 characters for YouTube.
2. description.md — A YouTube description block containing: - Opening paragraph (2-3 sentences) setting the mood and location context - Full tracklist with timestamps, formatted as: 0:00 moodmixformat - JADED [Unreleased] 6:15 Anyma - Consciousness [Afterlife] (one line per track, exact format above) - Gear section - Social links section (placeholders for Spotify, Instagram, Merch) - Standard outro: "New episodes every other week. Subscribe and turn on notifications." - Relevant tags section at the bottom
3. thumbnail.md — 3 thumbnail text/concept options: - Each concept includes: primary text overlay (max 4 words), secondary text (location or episode number), suggested color treatment, mood reference - Keep text minimal — thumbnails should be mostly visual
4. checklist.md — A publishing checklist: - Pre-upload: render, export settings (1080p60 or 4K, AAC audio), file naming - Upload: title, description, tags, thumbnail, end screen, cards, premiere time - Post-publish: community post, Instagram story, pin comment with tracklist link - Cross-platform: SoundCloud upload, Mixcloud upload (if applicable) - Each item is a checkbox in markdown format
5. chapters.json — YouTube chapters data: - Array of {time, title} objects derived from the tracklist - First chapter must start at 0:00 - Chapter titles use format: "Artist - Track" - Include a final chapter for outro if duration extends past last track
STYLE:- All text should feel natural to an electronic music YouTube channel- Descriptions should be scannable, not walls of text- Use the mood from the notes to inform the opening paragraph tone- Don't over-explain. The audience knows what a DJ set is.What you get
After your AI CLI tool finishes, your episode folder now looks like this:
episodes/s2e04-warehouse/ notes.json (your input) titles.md (5 title options) description.md (ready-to-paste YouTube description) thumbnail.md (3 thumbnail concepts) checklist.md (publishing checklist) chapters.json (YouTube chapters data)Verify each file
titles.md — Are the titles under 100 characters? Do they capture the vibe? Pick one or combine elements from multiple options.
description.md — This is the big one. Copy-paste it into YouTube’s description field. Check:
- Are timestamps formatted correctly? (YouTube auto-links
0:00formatted timestamps) - Is the tracklist in the right order?
- Do the social links have placeholders you can fill in?
thumbnail.md — These are concepts, not finished thumbnails. But they give you direction for when you open Photoshop or Canva.
checklist.md — Go through it item by item. Does it cover everything you usually forget?
chapters.json — This can be used programmatically if you ever build a more automated upload pipeline.
A properly formatted tracklist with timestamps is one of the most viewer-friendly things you can add to a YouTube description. It turns a 58-minute set into navigable chapters. Viewers come back to specific tracks, which boosts watch time and engagement. The tool formats this perfectly every time.
If something is off
| Problem | Follow-up prompt |
|---|---|
| Timestamps don’t match tracklist | The timestamps in the description don't match the tracklist from my notes.json. Use the exact timestamps from the tracklist array, don't generate new ones. |
| Titles are too long | Several titles are over 100 characters. YouTube truncates long titles. Shorten all options to under 80 characters while keeping them descriptive. |
| Description feels like a blog post | The description opening is too long and reads like a blog post. Make it 2 sentences max. The audience clicked on a DJ set video, they don't need 3 paragraphs of context. |
| Checklist is too basic | Add more detail to the checklist. Include: export resolution options (1080p60 vs 4K), audio loudness target (-14 LUFS), premiere vs instant publish, end screen timing (last 20 seconds), and a reminder to add to the RECORDED LOCATIONS playlist. |
Customize it
Auto-generate SoundCloud description
Add a soundcloud-description.md file to the output. SoundCloud descriptions havedifferent formatting than YouTube:- No timestamp links (SoundCloud doesn't support them)- Shorter format -- just the tracklist with artist - title (no timestamps)- Link to the YouTube version for the full video- Include SoundCloud-specific tags at the bottomAdd a social media snippet pack
Add a social.md file with 3 ready-to-post snippets:1. Instagram story text overlay: 2-3 words max, location or mood2. Instagram feed caption: 3-4 lines with the location, episode number, and a call to action to watch on YouTube3. Twitter/X post: under 280 characters, include the YouTube link placeholderEach formatted as a copy-paste block.Template for future episodes
Create a template.json file that I can copy for new episodes. Include all thefields from notes.json with placeholder values and helpful comments explainingeach field. Add a README.md explaining the folder structure and how to run theepisode-builder tool.When Things Go Wrong
Use the Symptom → Evidence → Request pattern: describe what you see, paste the error, then ask for a fix.
The workflow in practice
Here’s what using this tool looks like for a real episode:
- After your session: Create the episode folder, jot down the tracklist and highlights in
notes.jsonwhile it’s fresh. - After editing the video: Update timestamps to match the final edit.
- Before upload: Run
node episode-builder.js episodes/s2e04-warehouse/ - During upload: Copy-paste from
description.md, pick a title fromtitles.md, followchecklist.md. - Post-publish: Use the social media snippets for cross-promotion.
Total metadata time: 2 minutes instead of 30.
Try it yourself
- Create an episode folder with a
notes.jsonfile (use real episode data or make one up). - Paste the main prompt into your AI CLI tool.
- Run the tool and review each output file.
- Copy the description into a test YouTube upload (or just a text editor) to verify formatting.
- Pick one customization and add it.
Key takeaways
- Structured input, structured output — a JSON notes file produces consistently formatted metadata every time.
- YouTube timestamps are critical — properly formatted timestamps auto-generate chapters, which boost watch time and viewer navigation.
- Checklists prevent forgotten steps — the publishing checklist catches things you’d otherwise miss (end screens, premiere settings, cross-platform uploads).
- The tool fits your workflow, not the other way around — you write notes after your session, update timestamps after editing, then generate everything before upload.
- Templates make the next episode faster — once you have the structure, creating notes for a new episode takes 5 minutes.
Your YouTube description has timestamps formatted as '00:06:15' but YouTube isn't creating chapters. What's likely wrong?
What’s next
In the final lesson, you’ll build The Moodmix Control Room — a private analytics dashboard that combines your Spotify for Artists and Shopify data to show where your listeners are, who’s buying merch, and where the opportunities are. Real business intelligence for an independent artist.