Implement Podcast 2.0 chapters (external JSON) #31
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
concept.mdlists the Podcast 2.0 namespace (xmlns:podcast) as optional. Nothing currently emits Podcast 2.0 elements, and no specific elements (transcript, chapters, funding, …) have been specified.Open decision: implement the namespace, or remove the mention from
concept.md.Plan of attack (blocked on owner decision):
concept.md.src/sub2pod/feed.pywith tests.Decide: implement or drop the Podcast 2.0 namespaceto Implement Podcast 2.0 chapters (external JSON)Decision made: implement the Podcast 2.0 chapters extension (external JSON), not the whole namespace.
Findings (from the ytdl-sub investigation):
.info.json(viaoutput_options.info_json_name) whosechaptersarray (start_time/end_time/title, seconds) is populated from YouTube chapter markers. Confirmed working on the liveLinks with Friendsdata.<podcast:chapters url type="application/json+chapters">), not inline<podcast:chapter>— verified in AntennaPod source (PodcastIndex.javaonly reads theurlattribute;PodcastIndexChapterParser.javaparses{"chapters":[{"startTime":…,"title":…}]}).Plan:
src/sub2pod/chapters.py—Chapterdataclass (start_time,title),parse_chapters()(info.json → list),chapters_to_json()(Podcast Index JSON{"version":"1.2.0","chapters":[…]}).discovery.py— addchapterstoEpisode, discover the.info.jsonsidecar.feed.py— declarexmlns:podcast, emit<podcast:chapters>in the item, writechapters.jsoninwrite_feed.concept.mdto scope the namespace mention to the chapters extension.