Skip to main content

Podcaster

Hosting a podcast and creating its website with Eleventy.

Podcaster Blog

Describing a podcast episode

Podcasts are an audio medium, of course, but your listeners’ podcast players describe each of your episodes using text — a title, a short description and a long description.

And so Podcaster lets you provide all three of those.

I’ve posted about titles already — so let’s talk about the short and long descriptions.

Short description

Podcaster lets you provide the short description for your episode in the front matter of that episode’s post as episode.description. This is plain text, and podcast players usually show it — or the start of it — in list views.

If you don’t provide episode.description, Podcaster will use the first 800 or so characters — about 150 words — of the long description instead.

Long description

Podcaster takes your episode’s long description from the content of the episode’s post. This is HTML, which means it can include styled text, headings and — most importantly — links, which are just the sort of things you need for an episode’s show notes.

Podcast players differ in how well they present these — but all of the common ones will at least show links and paragraphs correctly.

Customising these descriptions

If you want to customise how episode.description is calculated from the content of your post, or if you want to add additional information to your show notes, Podcaster lets you customise both of these descriptions.

If podcast.episodeDescriptionTemplate exists, it’s assumed to contain the name of a template in your includes directory; the same with podcast.episodeContentTemplate. If those templates exist, they are included in your podcast feed, specifying the short and long descriptions respectively.

Sample templates

Here’s a sample episode description template that reduces the length of the short description to 255 characters. Remember, the short description produced by this template needs to be plain text.

{{ post.content | safe | striptags(true) | truncate(255) }}

And here’s a sample episode content template based on the one from my Star Trek podcast site. It includes the stardate and first broadcast date of the Star Trek episode we discuss in a given podcast episode. The long description produced here is in HTML.

<p>
  <em>
    First broadcast on {{ post.data.starTrek.broadcast | readableDate }}.  
    Stardate: {{ post.data.starTrek.stardate }}.
  </em>
</p>
{{ post.content | safe }}

The episode description template and the episode content template both need to be Nunjucks templates, and both need to refer to the podcast episode’s post as post, using the collection item data structure.


Unnecessary technical detail

Podcaster includes the short description in the feed as the contents of the <itunes:summary> and <description> tags. It includes the long description in the feed as the content of the <content:encoded> tag, inside a CDATA section.

Three titles

---
title: Entering a new phase
episode:
  title: S1E1, Entering a new phase (The Power of the Daleks)
  itunesTitle: Entering a new phase (The Power of the Daleks)
---

If you’ve read the documentation page about how to provide episode information to Podcaster, you might have noticed that Podcaster offers three different titles that you could provide for a given podcast episode.

Here’s how the docs describe them:

field value
title The title of the post on the website; by default, this will also be the title of the podcast episode.
episode.title The title of the episode if it’s different from the title of the post, above. If omitted, title is used instead.
episode.itunesTitle A specific episode title for use in Apple Podcasts only. (Apple Podcasts doesn’t allow episode numbers in titles, so if you want to include episode numbers elsewhere, you need to specify a separate episode title for Apple Podcasts.) (New in version 1.1.0)

Most of the time, the first title will be enough on its own. But here’s an explanation of why you might provide the other two.

episode.title

Some podcasts give each episode a title that is a funny or striking quotation from the episode. Others use a title that specifies the episode’s main topic. But what if you want to do both?

Our podcast Flight Through Entirety uses quotations as titles, because that’s fun, but it’s helpful for listeners to know what Doctor Who story is the topic of a given episode. And so we use title for the quotation, while episode.title consists of the quotation followed by the topic. Like this:

---
title: Plummeting Towards Sheffield
topic: Twice upon a Time
episode: 
  title: Plummeting Towards Sheffield (Twice upon a Time)
---

And so the post on the site will have the title Plummeting Towards Sheffield, but in the feed and in your podcast player of choice, the episode title will be Plummeting Towards Sheffield (Twice upon a Time).

Tip

You could use a directory data file and the eleventyComputed property to automatically calculate episode.title from title and topic.

{
  "eleventyComputed": {
    "episode.title": "{{ title }} ({{ topic }})"
  }
}

episode.itunesTitle

Some podcasts include the episode number in their episode titles, but Apple Podcasts doesn’t want you to do that. And so you can provide a separate Apple Podcasts–only title as episode.itunesTitle.

---
title: Plummeting Towards Sheffield
episode:
  episodeNumber: 296
  title: "296: Plummeting Towards Sheffield"
  itunesTitle: Plummeting Towards Sheffield
---

(The Accidental Tech Podcast feed and the feeds on Relay provide separate Apple Podcasts titles to their episodes for precisely this reason.)

Tip

Again, this is also the sort of thing you could use eleventyComputed to calculate.

{
  "eleventyComputed": {
    "episode.title": "{{ episode.episodeNumber }}: {{ title }}",
    "episode.itunesTitle": "{{ title }}"
  }
}

Creating a home page

You can put whatever you want on your podcast site’s home page, but the most obvious and straightforward approach might be to present a list of episodes in reverse chronological order.

Here’s how to do that.

Continue reading…