feat: automate blog podcast publishing
Closed
RI
1mo ago+1437+1437+0123456789012345678901234567890123456789-6-6-0123456789
Supersedes #879 — rebased onto current main with merge conflicts resolved and richer episode descriptions.
Summary
- Generate two-voice podcast episodes from eligible English blog posts via AutoContent API (
https://api.autocontentapi.com). - Expose episodes on matching blog pages with an accessible native audio player, Open Graph audio metadata, and JSON-LD (
PodcastEpisode+AudioObject). - Publish a site-owned RSS feed at
/podcast.xmlwith valid enclosures, stable GUIDs, artwork, and canonical article links. - Make the feed discoverable via a global RSS alternate link and
robots.txtsitemap entry. - Add GitHub Actions workflow for new posts, daily quota-aware backfill (2 oldest missing), and manual
--slugruns.
Description backlinks
Episode descriptions now include:
- The source article URL
- Up to 3 related Capgo blog posts (matched by shared tags)
- Up to 3 Capgo product/docs links (matched by tags/keywords, e.g.
/live-update/,/docs/plugins/updater/,/plugins/)
Activation (required before automation runs)
Automation is off by default. Set these in GitHub repository settings:
| Type | Name | Purpose |
|---|---|---|
| Variable | PODCAST_AUTOMATION_ENABLED | Set to true to enable workflows |
| Variable (optional) | PODCAST_SITE_URL | Defaults to https://capgo.app |
| Secret | AUTOCONTENT_API_KEY | AutoContent API bearer token |
| Secret | AUTOCONTENT_PODCAST_SHOW_ID | Target podcast show ID |
| Secret | AUTOCONTENT_PODCAST_VOICE_1 | First voice ID (integer) |
| Secret | AUTOCONTENT_PODCAST_VOICE_2 | Second voice ID (integer) |
Optional env overrides for local/manual runs: AUTOCONTENT_API_BASE_URL, PODCAST_POLL_INTERVAL_MS, PODCAST_POLL_TIMEOUT_MS.
Workflows
.github/workflows/generate-podcast.yml— push on new EN blog posts, daily cron backfill,workflow_dispatch- Outrank import workflow also generates one episode per import batch when enabled
Visual proof

Validation
bun test scripts/blogs/generate-podcast.test.ts scripts/blogs/podcast-discovery.test.ts
bun run ci:verify:web


Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.