Skip to content

Commit 8351f0e

Browse files
committed
Add chapters-extension proposal
Explore carrying the annotation model as an extension of <podcast:chapters> instead of a standalone <podcast:annotations> tag. Goal: fold the annotation model into chapters and close the standalone Podcast Annotation Format. - proposals/chapters-extension.md: chapter-vs-annotation distinction, use cases, why extend chapters (chapters already carry image/link/location/toc; DAI-alignment inheritance; Apple ingesting timed links via <podcast:chapters>; one object for two needs), prior-art table, field-by-field mapping, chapter/timed-link/annotation comparison, a single extended-chapter object plus a full chapters-file example, adoption-and-incentives (answering Gathright), a minimal proposed scope (extensibility rule, type + canonicalId, overlap semantics, multiple chapter files), and a replacement test. Frames Daniel Lewis's #469 super-chapters extensions as a parallel track. Ties the cross-show use case to Spurlock's and Gathright's Wikidata point. Credits Cridland, Lewis, Sethi, Spurlock, Gathright (#544), Curry, ericpp. - SPEC.md: non-normative pointer from Relationship to Other Standards. - CHANGELOG.md: 0.9.2 doc-only entry; version and lockfile bumped; docs rebuilt.
1 parent 176bbd9 commit 8351f0e

7 files changed

Lines changed: 344 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 0.9.2 (2026-07-14)
4+
5+
### Added
6+
- New exploratory proposal, [`proposals/chapters-extension.md`](proposals/chapters-extension.md): can the annotation model be carried as an extension of `<podcast:chapters>` instead of a standalone tag? Maps the model field by field, with a minimal proposed scope (extensibility rule, `type`/`canonicalId`, overlap semantics, multiple chapter files) and a replacement test. Follows suggestions from James Cridland and Daniel J. Lewis (#469).
7+
- Non-normative pointer to the proposal from `SPEC.md`'s Relationship to Other Standards section. No data-model change; spec version remains `1.1.0`.
8+
39
## 0.9.1 (2026-07-02)
410

511
### Added

SPEC.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,8 @@ Maps to this W3C Web Annotation:
673673

674674
Podcasting 2.0 chapters and annotations are complementary. Chapters define coarse segments (intro, topic, outro) with titles and artwork; annotations are the fine-grained entity references inside those segments. An episode might carry 5 chapters and 40 annotations, and neither constrains the other. WebVTT and SRT sit on a different axis entirely. Subtitle formats carry the transcript text, this spec carries the entities and topics referenced in that text, and a player can use both at once: WebVTT for the transcript, annotations for contextual overlays.
675675

676+
A separate exploration, [Annotations as a `<podcast:chapters>` extension](https://github.com/carcurious/podcast-annotations-js/blob/main/proposals/chapters-extension.md), asks whether the annotation model could be carried as an extension of the [`<podcast:chapters>`](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/tags/chapters.md) object instead of the standalone `<podcast:annotations>` element described above, so annotations inherit chapters' existing tooling: player rendering, and whatever keeps chapters aligned under dynamic ad insertion. That work is exploratory and does not change this data model.
677+
676678
**Apple Podcasts Timed Links.** Starting with iOS 26.2 (Nov 2025), Apple Podcasts renders creator-authored timed links as banners on the Now Playing screen, inline in the transcript, and in a "From This Episode" section on the episode page ([Apple's timed links documentation](https://podcasters.apple.com/support/5536-links-on-apple-podcasts); see also [chapters, links, and more](https://podcasters.apple.com/support/5545-enhance-episodes-with-chapters-links-more)). Creators author these links two ways: hyperlinked text and a timestamp in the episode description, or `url` fields on the existing Podcasting 2.0 `<podcast:chapters>` JSON. Apple introduced no new RSS tag for this. Apple also auto-detects podcast mentions in English-language shows and links to the mentioned show; creators can opt out via Apple Podcasts Connect.
677679

678680
The feature validates the moment-level pattern this spec is built on, at much narrower scope. Link destinations are limited to Apple's own ecosystem (Apple Books, Music, Music Classical, Maps, News, Podcasts, Sports, Stocks, TV, Shazam) and other podcasts; a timed link cannot point at an arbitrary URL. It also carries no typed entity (`person`, `place`, `car`, …), no `canonicalId`, no `layer`/`producer`, and no time span: it fires at a point, not across the range where an entity is discussed. Apple documents how timed links render. It has not published a data model for what one is.

docs/index.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ <h1>Timestamped context for podcast audio.</h1>
560560
<p class="intro-cta"><a class="cta-spec" href="#spec">Read the specification</a></p>
561561
<dl class="spec-facts">
562562
<div><dt>This version</dt><dd>1.1.0 (stable)</dd></div>
563-
<div><dt>Last updated</dt><dd>2026-07-03</dd></div>
563+
<div><dt>Last updated</dt><dd>2026-07-14</dd></div>
564564
<div><dt>License</dt><dd><a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></dd></div>
565565
<div><dt>Source</dt><dd class="mono"><a href="https://github.com/carcurious/podcast-annotations-js">carcurious/podcast-annotations-js</a></dd></div>
566566
</dl>
@@ -1788,6 +1788,7 @@ <h3 id="mapping-rules">Mapping Rules</h3>
17881788
</blockquote>
17891789
<h2 id="relationship-to-other-standards">Relationship to Other Standards</h2>
17901790
<p>Podcasting 2.0 chapters and annotations are complementary. Chapters define coarse segments (intro, topic, outro) with titles and artwork; annotations are the fine-grained entity references inside those segments. An episode might carry 5 chapters and 40 annotations, and neither constrains the other. WebVTT and SRT sit on a different axis entirely. Subtitle formats carry the transcript text, this spec carries the entities and topics referenced in that text, and a player can use both at once: WebVTT for the transcript, annotations for contextual overlays.</p>
1791+
<p>A separate exploration, <a href="https://github.com/carcurious/podcast-annotations-js/blob/main/proposals/chapters-extension.md">Annotations as a <code>&lt;podcast:chapters&gt;</code> extension</a>, asks whether the annotation model could be carried as an extension of the <a href="https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/tags/chapters.md"><code>&lt;podcast:chapters&gt;</code></a> object instead of the standalone <code>&lt;podcast:annotations&gt;</code> element described above, so annotations inherit chapters&#39; existing tooling: player rendering, and whatever keeps chapters aligned under dynamic ad insertion. That work is exploratory and does not change this data model.</p>
17911792
<p><strong>Apple Podcasts Timed Links.</strong> Starting with iOS 26.2 (Nov 2025), Apple Podcasts renders creator-authored timed links as banners on the Now Playing screen, inline in the transcript, and in a &quot;From This Episode&quot; section on the episode page (<a href="https://podcasters.apple.com/support/5536-links-on-apple-podcasts">Apple&#39;s timed links documentation</a>; see also <a href="https://podcasters.apple.com/support/5545-enhance-episodes-with-chapters-links-more">chapters, links, and more</a>). Creators author these links two ways: hyperlinked text and a timestamp in the episode description, or <code>url</code> fields on the existing Podcasting 2.0 <code>&lt;podcast:chapters&gt;</code> JSON. Apple introduced no new RSS tag for this. Apple also auto-detects podcast mentions in English-language shows and links to the mentioned show; creators can opt out via Apple Podcasts Connect.</p>
17921793
<p>The feature validates the moment-level pattern this spec is built on, at much narrower scope. Link destinations are limited to Apple&#39;s own ecosystem (Apple Books, Music, Music Classical, Maps, News, Podcasts, Sports, Stocks, TV, Shazam) and other podcasts; a timed link cannot point at an arbitrary URL. It also carries no typed entity (<code>person</code>, <code>place</code>, <code>car</code>, …), no <code>canonicalId</code>, no <code>layer</code>/<code>producer</code>, and no time span: it fires at a point, not across the range where an entity is discussed. Apple documents how timed links render. It has not published a data model for what one is.</p>
17931794
<p><em>Interop guidance:</em> Apple already renders <code>url</code> fields on <code>&lt;podcast:chapters&gt;</code>, so a producer can export a slice of their highest-<code>priority</code> annotations into a chapters file and get Apple Podcasts to render them as timed links today, with no new infrastructure. This export is lossy and one-way: a chapters entry carries no <code>type</code>, <code>canonicalId</code>, <code>speaker</code>, or <code>confidence</code>, and chapters stay coarse and non-overlapping by design. iOS 26.2 also only auto-generates chapters when a feed provides none, so publishing every annotation as a chapter would suppress that auto-generation too. Export only the editorial highlights this way, and keep the full annotation set in the sidecar file or, per the RSS Distribution guidance below, a <code>&lt;podcast:annotations&gt;</code> element.</p>
@@ -1832,7 +1833,7 @@ <h2 id="license">License</h2>
18321833
</section>
18331834

18341835
<footer>
1835-
Version 1.1.0. Released under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Last updated 2026-07-03. <a href="https://github.com/carcurious/podcast-annotations-js">GitHub</a>.
1836+
Version 1.1.0. Released under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Last updated 2026-07-14. <a href="https://github.com/carcurious/podcast-annotations-js">GitHub</a>.
18361837
</footer>
18371838
</div>
18381839

docs/sitemap.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>https://www.podcastannotation.org/</loc>
5-
<lastmod>2026-07-03</lastmod>
5+
<lastmod>2026-07-14</lastmod>
66
</url>
77
</urlset>

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "podcast-annotations",
3-
"version": "0.9.1",
3+
"version": "0.9.2",
44
"description": "Timed annotation overlays, live transcript sync, chapter sync, and annotation timelines for audio players",
55
"type": "module",
66
"main": "dist/index.js",

0 commit comments

Comments
 (0)