Zencastr
00:00.00 Speaker 1: Hello and welcome to the show.
00:15.50 Speaker 2: Thanks for having me!
Podcast Metadata Generator reads your transcript, video, or audio file and writes the titles, descriptions, YouTube chapters, and subtitles for it.
Have .NET 10? Run this
dnx PodcastMetadataGenerator
Example episode, made up for this page
Tick a style and the title is retyped.
1
00:00:00,000 --> 00:00:04,200
Welcome back to Spare Room Radio.
Four steps, and you only do them once. You do not need to have used a terminal before: every command is written out in full, ready to copy.
A terminal is a window where you type a command and press Enter. You only need it to start the app. After that you move around with the arrow keys.
Windows: press the Windows key, type Terminal, and press Enter. On older Windows 10, type PowerShell instead.
macOS: press Command + Space, type Terminal, and press Return.
Linux: press Ctrl + Alt + T, or search your apps for Terminal.
The app runs on .NET, a free toolkit from Microsoft. You need version 10 or later.
Choose the SDK installer for your computer and run it. Then close the terminal, open it again, and check that it worked:
dotnet --versionYou should see a number that starts with 10. If you see “command not found”, close and reopen the terminal and try once more.
GitHub Copilot does the writing, so you need a GitHub account with Copilot. The free Copilot plan works. You do not need a paid subscription. See the Copilot plans.
Install the Copilot command-line app. The app uses it to reach Copilot, and it is how you sign in:
Windows
winget install GitHub.CopilotmacOS
curl -fsSL https://gh.io/copilot-install | bashUse Homebrew? brew install copilot-cli does the same job.
Linux
curl -fsSL https://gh.io/copilot-install | bashThen sign in and follow the prompts to approve it in your browser:
copilot loginYou can also start copilot and type /login. Have Node.js 22 or later? npm install -g @github/copilot installs it on any computer.
dnx PodcastMetadataGeneratordnx comes with .NET 10. It fetches the latest version and starts it, with nothing left to maintain. If it asks whether to download the package, answer yes.
You should see the app’s banner, then a Copilot status table ending in Copilot runtime is ready to use!
dotnet tool install -g PodcastMetadataGeneratorFrom then on, start it with:
podcast-metadata-generatorUpdate later with dotnet tool update -g PodcastMetadataGenerator.
Skip this if you already have a transcript. ffmpeg is a free tool that pulls the sound out of a video or audio file so the app can transcribe it.
Windows
winget install ffmpegmacOS, with Homebrew
brew install ffmpegLinux, Debian or Ubuntu
sudo apt install ffmpegOther ways to get it are on the ffmpeg download page. If ffmpeg ends up somewhere unusual, point the app at it under Settings.
The app is a set of menus. Move with the arrow keys and press Enter to choose. There are no commands to memorize.
Start the app, choose Load Transcript, Video, or Audio, then say which kind of file you have. Browse for file lets you walk your folders with the arrow keys. Type or paste path also accepts a file dragged onto the terminal window.
Or hand it the file as you start:
dnx PodcastMetadataGenerator "my episode.mp3"Your recording is transcribed on your own computer with Whisper, so the app needs a speech model first. It offers to open the right screen the first time you load a video or audio file. You can also go to Settings, then Transcription Settings, choose a model, and download it.
| Model | Download | Good for |
|---|---|---|
| Tiny | 75 MiB | Fastest, lowest accuracy |
| Base | 142 MiB | The default. Balanced for most machines |
| Small | 466 MiB | Better accuracy, slower |
| Large v3 Turbo | 1.5 GiB | Fast and highly accurate |
| Large v3 | 2.9 GiB | Highest accuracy, heaviest |
Twelve models are offered in all. The ones marked English only understand English; the rest are multilingual.
The app asks where to save the transcript as an .srt file, shows progress while it listens, then carries on as if you had loaded that transcript. Ctrl + C cancels.
Main Menu
Generate All Metadata writes titles, descriptions, chapters, and subtitles in one pass. It asks which title style you want, lets you pick your favorite title, and shows the text as it is written. Or run any one of them on its own.
Chapters and subtitles need a transcript with timestamps. Plain text still gets titles and descriptions.
When a generation finishes, Copy to Clipboard offers the selected title, all titles, each description, the chapters, or everything at once. Paste straight into YouTube or your podcast host.
Save Results asks for a folder and writes these files, named after your episode file:
| File | What is in it |
|---|---|
| my-episode_titles.txt | Your title suggestions |
| my-episode_description_short.txt | About 50 words |
| my-episode_description_medium.txt | About 150 words |
| my-episode_description_long.txt | About 300 words |
| my-episode_chapters.txt | Chapter markers, ready for YouTube |
| my-episode.srt | Subtitles |
| my-episode_manifest.json | Everything in one file, for other tools |
Linux: copying to the clipboard needs xsel installed.
The app works out which format you have. These are the four it knows.
00:00.00 Speaker 1: Hello and welcome to the show.
00:15.50 Speaker 2: Thanks for having me!
00:00:00 - 00:00:15
Hello and welcome to the show.
00:00:15 - 00:00:30
Thanks for having me!
1
00:00:00,000 --> 00:00:15,000
Hello and welcome to the show.
2
00:00:15,000 --> 00:00:30,000
Thanks for having me!
Hello and welcome to the show.
Thanks for having me!
No timestamps, so no chapters or subtitles. Titles and descriptions still work.
Open Settings from the main menu. Your choices are remembered in ~/.podcast-metadata-generator/settings.json.
| Setting | Starts at |
|---|---|
| Titles per run | 5 |
| Longest title | 10 words |
| Title style | Balanced |
| Description lengths | 50, 150, 300 words |
| Chapters | 3 to 12 |
| Chapters per 30 minutes | 5 |
| Longest chapter title | 8 words |
Filling in Podcast Name, Host Names, and Episode Context (guests, topics) gives Copilot more to work with. You can also change the AI model and where files are saved.