Applied Module 12 · AI-Powered Music Production Workflows

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.json

Here’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"
}
💡Keep the notes simple

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 series
episode 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:00 formatted 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.

The tracklist is your secret weapon

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

ProblemFollow-up prompt
Timestamps don’t match tracklistThe 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 longSeveral 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 postThe 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 basicAdd 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 have
different 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 bottom

Add 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 mood
2. Instagram feed caption: 3-4 lines with the location, episode number, and a
call to action to watch on YouTube
3. Twitter/X post: under 280 characters, include the YouTube link placeholder
Each formatted as a copy-paste block.

Template for future episodes

Create a template.json file that I can copy for new episodes. Include all the
fields from notes.json with placeholder values and helpful comments explaining
each field. Add a README.md explaining the folder structure and how to run the
episode-builder tool.

🔧

When Things Go Wrong

Use the Symptom → Evidence → Request pattern: describe what you see, paste the error, then ask for a fix.

Symptom
The tool creates files in the wrong directory
Evidence
Running `node episode-builder.js episodes/s2e04-warehouse/` creates the output files in the current directory instead of inside the episode folder
What to ask the AI
"The output files are being written to the current directory instead of the episode folder. Write all output files to the same directory that contains the notes.json file. Use the input path to determine the output directory."
Symptom
The tracklist has duplicate entries
Evidence
The description.md shows each track listed twice -- once in the opening paragraph and once in the tracklist section
What to ask the AI
"The tracklist is duplicated in the description. The opening paragraph should reference the mood and location, not list individual tracks. Keep the full tracklist only in the dedicated timestamp section."
Symptom
The chapters.json has incorrect time format
Evidence
YouTube chapters need timestamps like '0:00' but the JSON has values like '0' or '0:0:00'
What to ask the AI
"The chapter timestamps need to be in YouTube's expected format: 'M:SS' for times under an hour (e.g., '6:15', '38:45'). Don't use 'H:MM:SS' format unless the episode is over an hour."
Symptom
The tool crashes when tracklist is empty
Evidence
I have an episode with no tracklist yet (just location and mood) and the tool throws 'Cannot read property of undefined'
What to ask the AI
"The tool crashes when the tracklist array is empty or missing. Handle the case where tracklist is empty: skip the tracklist section in the description, note 'Tracklist TBD' in the description, and skip chapters.json generation."

The workflow in practice

Here’s what using this tool looks like for a real episode:

  1. After your session: Create the episode folder, jot down the tracklist and highlights in notes.json while it’s fresh.
  2. After editing the video: Update timestamps to match the final edit.
  3. Before upload: Run node episode-builder.js episodes/s2e04-warehouse/
  4. During upload: Copy-paste from description.md, pick a title from titles.md, follow checklist.md.
  5. Post-publish: Use the social media snippets for cross-promotion.

Total metadata time: 2 minutes instead of 30.


Try it yourself

  1. Create an episode folder with a notes.json file (use real episode data or make one up).
  2. Paste the main prompt into your AI CLI tool.
  3. Run the tool and review each output file.
  4. Copy the description into a test YouTube upload (or just a text editor) to verify formatting.
  5. 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.

KNOWLEDGE CHECK

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.