Skip to content

feat(parser): support phase 8 podcast follow#3

Open
nathangathright wants to merge 1 commit into
podverse:developfrom
TeamPodlink:codex/add-podcast-follow-phase8
Open

feat(parser): support phase 8 podcast follow#3
nathangathright wants to merge 1 commit into
podverse:developfrom
TeamPodlink:codex/add-podcast-follow-phase8

Conversation

@nathangathright

Copy link
Copy Markdown

Summary

  • Add parser support for the phase 8 podcast:follow tag.
  • Expose the parsed follow endpoint as feed.podcastFollow.url.
  • Report phase 8 support for follow only when a valid url attribute is present.
  • Add tests for missing tags, missing/empty URLs, multiple tags, and known live-feed examples from Podnews and PRX/Radiotopia.

Verification

  • npm test -- src/parser/phase/__test__/phase-8.test.ts
  • Live feed check: https://podnews.net/rss parsed https://podnews.net/podcast/i8xe9/follow.json
  • Live feed check: http://feeds.radiotopia.fm/radiotopia-showcase parsed https://f.prxu.org/72/subscribelinks.json

@nathangathright nathangathright force-pushed the codex/add-podcast-follow-phase8 branch from 044ccde to 4642760 Compare May 29, 2026 23:45
@nathangathright

Copy link
Copy Markdown
Author

Follow-up validation after the latest force-push:

  • Tightened podcast:follow handling to select the first valid HTTP(S) URL and ignore malformed/unsupported url values.
  • Added regression coverage for malformed URLs and invalid-first/valid-second duplicate tags.
  • Re-ran npm test -- --runTestsByPath src/parser/phase/__test__/phase-8.test.ts --runInBand, npm run lint:typecheck, npm run lint:lint, and npm run build.
  • Re-tested the 24 live podcast:follow feeds discovered in the adoption crawl: 23 parsed successfully. The remaining feed still contains a raw follow tag but is ~31 MB and exceeds the parser's existing 20 MiB max feed size before tag extraction.

Add parsing for the pending/recommended Phase 8 <podcast:follow> tag at channel level. The tag points to a JSON document containing follow links for a podcast.

Regression test feeds: phase-8 tests splice PRX/Dovetail's deployed example <podcast:follow url="https://f.prxu.org/72/subscribelinks.json"/> and Podnews's deployed example <podcast:follow url="https://podnews.net/podcast/i8xe9/follow.json"/> into the sample feed. Tests also cover missing, empty, whitespace-only, and duplicate tag cases.

Spec context: Podcast Namespace discussion #671 lists NathanG's follow tag for Phase 8, and discussion #609 is labeled recommended/phase8.

Verified with: npm test -- --runTestsByPath src/parser/phase/__test__/phase-8.test.ts --runInBand; npm run lint:typecheck
@nathangathright nathangathright force-pushed the codex/add-podcast-follow-phase8 branch from 4642760 to 5b23dbf Compare May 29, 2026 23:49
@nathangathright

Copy link
Copy Markdown
Author

Additional follow-up after code-review recheck:

  • The re-review was clean except for a minor test gap around explicit http:// acceptance.
  • Added a positive HTTP follow URL test.
  • Re-ran npm test -- --runTestsByPath src/parser/phase/__test__/phase-8.test.ts --runInBand, npm run lint:typecheck, npm run lint:lint, and npm run build successfully.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant