Skip to content

Template tags

Look up every {{tag}} that PodNotes fills in when it creates a note, a download, or a transcript. To change where notes go and what they hold, see Create episode notes. The tags for captured timestamps are under Timestamp tags.

These rules apply to every template except Speaker label format:

  • Tag names ignore case. {{currentDate}} and {{currentdate}} are the same tag.
  • An unknown tag stays in the output as written, and PodNotes shows a notice that suggests a similar tag when it finds one.
  • Some tags take an argument after a colon, as in {{date:YYYY}}. Everything after the first colon is one argument, commas included.
  • An empty argument, as in {{date:}}, gives the tag’s default.

Speaker label format replaces only {{speaker}}, in any case and with spaces allowed inside the braces. It shows no notice for other tags. Without {{speaker}}, PodNotes puts the label, a colon, and a space before your text.

Note creation file path, Transcript file path, and Episode download path accept these tags:

Tag Value Argument
{{title}} Episode title, cleaned for a file name. Replaces whitespace, as in {{title:_}}.
{{podcast}} Podcast name, cleaned for a file name. Replaces whitespace, as in {{podcast:_}}.
{{date}} Episode publication date, or empty when the feed has none. Date format. Default YYYY-MM-DD.
{{currentDate}} Date when PodNotes fills in the path. Date format. Default YYYY-MM-DD.
{{episodeNumber}} Episode number from the feed or the title, or empty. Zero padding, as in {{episodeNumber:000}} for 042.

{{duration}} is not available in paths.

Setting Default
Note creation file path PodNotes/{{podcast}}/{{title}}.md
Transcript file path transcripts/{{podcast}}/{{title}}.md
Episode download path PodNotes/{{podcast}}/{{title}}

PodNotes adds .md to a note path when it is missing. A transcript path keeps the extension you type, so end it with .md. A download path gets the media file’s extension, and PodNotes removes any extension you type at its end.

A download path must tell episodes apart. Without {{title}}, the setting shows a warning. When a file for another episode already exists at the path, the download fails and does not overwrite it.

The {{title}} and {{podcast}} path tags remove these characters:

\ , # % & / { } * < > $ ' " : @ ‣ | ? [ ]

They also turn control characters into spaces, collapse runs of whitespace, trim the ends, and remove leading and trailing dots. Dots inside a name stay. PodNotes does not clean date values, so a date format that contains : can produce a file name that the system rejects.

PodNotes shortens a long folder or file name to fit file system limits, and keeps the extension.

Note creation template accepts these tags:

Tag Value
{{title}} Episode title as Markdown text on one line, with Markdown characters escaped.
{{safeTitle}} Episode title cleaned for a file name.
{{podcast}} Podcast name cleaned for a file name.
{{description}} Episode description, converted from HTML to Markdown.
{{content}} Episode content from <content:encoded>, converted to Markdown.
{{url}} Episode web page from the item’s <link>, or the feed URL when the item has none. For a local file, the vault link.
{{stream}} Public HTTP or HTTPS media URL. Empty for a device-only URL or a blocked address.
{{date}} Episode publication date, or empty when the feed has none.
{{currentDate}} Date when PodNotes creates the note.
{{episodeNumber}} Episode number, or empty when unknown.
{{duration}} Episode length from <itunes:duration>, or empty when the feed has none.
{{chapters}} Chapter list in Markdown, or empty when the episode has no visible chapters.
{{artwork}} Episode artwork URL, or empty when there is none or the address is blocked.
{{episodelink}} obsidian://podnotes link that resumes this episode. Empty without a feed URL or local file.

{{date}} and {{currentDate}} accept a date format. {{episodeNumber:000}} pads to three digits. Any other argument gives the number without padding.

The episode number comes from <itunes:episode> when the feed has a valid one. Otherwise PodNotes reads a number at the start of the title, such as #12, Ep. 12, Episode 12, or 12: Interview. PodNotes can mistake a year at the start of a title, as in 2024: A year in review, for episode number 2024.

{{description}}, {{content}}, and {{chapters}} accept a prefix for every line, as in {{description:> }}. Descriptions and content keep ordinary Markdown formatting, links, and image alt text. PodNotes removes media elements, escapes Markdown embeds, and turns dataview and dataviewjs code blocks into text code blocks.

PodNotes percent-encodes URLs from a feed where they contain whitespace, control characters, quotes, backticks, brackets, parentheses, angle brackets, or backslashes. A local file’s {{url}} stays a vault link. {{artwork}} and {{stream}} accept only public HTTP or HTTPS addresses without a user name or password. A device-only address, or a private or local IP address, gives an empty value.

With no argument, {{duration}} gives 4:05 for an episode under an hour and 1:02:03 for longer ones. {{duration:minutes}} gives whole minutes, and {{duration:seconds}} gives seconds. Any other argument is a time format, as in {{duration:HH:mm:ss}}. An episode restored from an older version can lack a duration until you open it from its feed again.

{{chapters}} reads the chapters file from the feed’s Podcasting 2.0 <podcast:chapters> tag. Each visible chapter becomes a line such as - 0:00 Chapter title, sorted by start time, with the title as plain text. PodNotes leaves out chapters marked toc: false. A failed request or an empty chapters file gives an empty value.

These episode note tags point to the episode or to its podcast:

Tag Value
{{episodeurl}} Same as {{url}}.
{{episodeartwork}} Same as {{artwork}}.
{{feedurl}} Podcast feed URL, or the placeholder for a private feed. Empty when no feed URL is stored.
{{feedartwork}} Saved podcast artwork, or the episode artwork when the podcast has none.
{{podcastlink}} Wikilink to the feed note, built from Feed note file path.

With the default Feed note file path, {{podcastlink}} gives [[PodNotes/Podcasts/Acquired|Acquired]]. A path without a folder gives [[Acquired]]. The link follows the same name length limit as the feed note. A date tag in the feed note path makes the link use the date when the episode note is created, which can differ from the date in the feed note’s name.

Note creation template starts as this template:

---
type: podcastEpisode
podcast: "{{podcastlink}}"
date: {{date:YYYY-MM-DD}}
tags:
- podcastEpisode
status:
rating:
favorite: false
---
# {{title}}
![]({{artwork}})
[Resume in PodNotes]({{episodelink}})
{{url}}
{{description}}

Its properties work with Obsidian Bases. You fill in status and rating, and change favorite to true for the episodes you like. To build a table of episode notes, see Browse your notes with Bases.

The title and the URL are in the body, not the properties. An escaped title can contain backslashes, and a vault link can contain quotes, so either value can break a quoted property. The quoted {{podcastlink}} is safe as long as Feed note file path has no quotes or backslashes.

Feed note file path accepts {{title}} and {{podcast}}, which both give the podcast name cleaned for a file name and accept a whitespace replacement. It also accepts {{date}}, the current date, with the default format YYYY-MM-DD. The default path is PodNotes/Podcasts/{{podcast}}.md.

Feed note template accepts these tags:

Tag Value
{{title}} Podcast name as Markdown text on one line, with Markdown characters escaped.
{{safeTitle}} Podcast name cleaned for a file name.
{{podcast}} Podcast name cleaned for a file name.
{{url}} Podcast website from the feed’s <link>, or empty.
{{feedurl}} Podcast feed URL, or the placeholder for a private feed.
{{artwork}} Podcast artwork URL, or empty when there is none or the address is blocked.
{{feedartwork}} Same as {{artwork}}.
{{author}} Author from <itunes:author>, with Markdown characters escaped.
{{description}} Podcast description, converted to Markdown. Accepts a line prefix.
{{date}} Current date. Accepts a date format.

{{currentDate}} is not available in feed notes or feed note paths. The title, author, description, URL, and artwork tags follow the same rules as their episode note versions.

Feed note template starts as this template:

---
type: podcast
podcast: "{{podcast}}"
image: "{{artwork}}"
url: "{{url}}"
feedUrl: "{{feedurl}}"
tags:
- podcast
---
# {{title}}
{{author}}
![]({{artwork}})
{{description}}

Transcript template accepts {{title}}, {{podcast}}, {{date}}, {{currentDate}}, {{episodeNumber}}, {{duration}}, {{transcript}}, {{description}}, {{url}}, and {{artwork}}. {{transcript}} is the transcript text. {{title}} and {{podcast}} give names cleaned for a file name, as in paths, and accept a whitespace replacement. The other tags follow the episode note rules. {{stream}}, {{chapters}}, and {{episodelink}} are not available in transcripts.

Transcript template starts as this template:

# {{title}}
Podcast: {{podcast}}
Date: {{date}}
{{transcript}}

Speaker label format accepts {{speaker}}, the label of the speaker for each turn. See Transcribe episodes for speaker labels.

Capture timestamp format accepts {{time}}, {{linktime}}, {{segment}}, and {{linksegment}}. See Timestamp tags. If your captures come out as plain text, see Make timestamps clickable.

Date tags accept these Moment-style tokens:

Part Tokens
Year YYYY, YY
Month MMMM, MMM, MM, Mo, M
Day of month Do, DD, D
Weekday dddd, ddd
Hour HH, H, hh, h
Minute mm, m
Second ss, s
AM or PM A, a

Month and weekday names and ordinals are in English. Dates use the device’s time zone. Square brackets keep text as it is, as in {{currentDate:[Captured] YYYY-MM-DD}}. PodNotes does not support other Moment tokens.