The Great Chapter Crusade

Posted on Sunday, Jan 8, 2023 by RastaCalavera | Series: Podcasting 2.0 | Podcasting 2.0, Podcast Namespace, Enhancements, Features, chapters, json, python, coding

What’s the deal with chapters?

So chapters are a pretty neat feature of podcasts but they are kind of a pain from the creator’s perspective to make. Jupiterbroadcasting, who I listen to a lot, has had them for a long time and I reached out years ago to try to figure out how they did it with their Castablasta and never got a concrete answer.

Well, the chapters for the 2.0 spec are super easy to understand, but I want a easy way to make them and not have to do things by hand all the time.

So, here is my thought: I am currently using Audacity and that application can provide a label export. This label export should be easily converted to the json format for 2.0 chapters. I have spend about a week working on the problem and have come up with a pretty decent solution.

Most of the code and workflow comes from a project who used Jekyll as a static site generator and made a json file using Audacity chapters! But get this, they also had a way to add chapters into the ID3 tags of the mp3 file itself so in theory, you could produce 2.0 compliant chapters AND a mp3 that would display chapters in something like PocketCasts as well. NICE!!

So after poking and prodding for a week, I have put together a decent solution but the only issue is that you still need three folders and a naming convention to make this work efficiently. When I think about how this could integrate into the Castanet theme I envision the following:

Doing this would allow me to slightly modify the python script and simply by adjusting my workflow, I would create the possibility of being able to seamless create 2.0 chapters AND make my mp3 files better for other players. I would have to do some renaming of items in the path of the episode front matter, but I am <10 episodes in so if I am going to drastically change how I do things, it would be best to commit before I get a deep catalog.

I am thinking that this will be the best way forward because I could potentially integrate the script into the CI/CD pipline so that when the site builds on GitLab, everything just takes care of itself.