PodTagger is a simple ruby script that reads a
shownotes.raw (Markdown with YAML headers) file and applies the information in the headers using configured templates to a target MP3 file.
PodTagger reads a YAML config file with defaults, and YAML headers on podcast show notes. Start by creating a default configuration file in your home directory (~) called
podtagger.yaml. If you run it without creating this file first, it will automatically create an empty config for you.
The podcast file contains the following keys:
Adding additional top-level keys with podcast names allows you to override settings on a per-podcast basis. If you only ever tag one podcast, you can just use the
If you have additional podcast configurations, they extend the default, meaning that keys that aren’t defined in that podcast section fall back to whatever is defined in
default:. Thus, you only have to add keys for settings you want to override.
As an example, here’s my
podtagger.yaml for Overtired and Systematic.
As you can see, the Systematic values only override the title formats (see “Format strings” below) and add a logo. The Overtired values override the host tag, the logo, and the episode title format (the one used on the MP3, not in the show notes).
Any of these values can be overridden by the YAML data in an episodes notes file.
title_format use variables delineated by 2 percent symbols on either side:
%%variable%%. The variable name can correspond to any keys defined, such as
%%title%%. You can also include custom keys in your
shownotes.raw headers (see below) which are then available as variables. For example, my Systematic show notes include a key for
guest:, which I can then use in the format string:
"## %%title%% with %%guest%%".
PodTagger reads a YAML header from a file called
shownotes.raw in the same directory as the mp3 file you’re tagging.1 After PodTagger finishes, it will write out the show notes with the YAML removed to a file called
shownotes.md. The rest of the file after the YAML headers can be any information you want. I use it for description, sponsor info, and show links, but it’s for whatever you’d post on a show landing page.
shownotes.raw file would look something like this:
--- description: "Lawyer, blogger, podcaster, and Mac productivity guy, David Sparks joins Brett to talk about freelancing, saying no to projects, and the latest and greatest top 3 picks." episode: 185 guest: David Sparks --- # Too Busy This episode is sponsored by TextExpander for Teams, making all of your team's common replies consistent and easily accessible. Learn more (and support Systematic) at [textexpander.com/systematic](https://textexpander.com/systematic?utm_source=systematic&utm_medium=podcast&utm_campaign=textexpander-feb17 ). ...
Note that you can include a
title: meta key, or just make an h1 or h2 (
# title or
## title line) in the show note body. Either will generate the title and format it based on format strings in the configuration.
shownotes.rawdoesn’t exist but
shownotes.mdwill be copied to .raw and then overwritten without the YAML headers.↩