Add persistent caller voices, Discord, REC/on-air linking, SEO fixes, ep9

- Returning callers now keep their voice across sessions (stored in regulars.json)
- Backfilled voice assignments for all 11 existing regulars
- Discord button on homepage + link in all page footers
- REC and On-Air buttons now toggle together (both directions)
- Fixed host mic double-stream bug (stem_mic vs host_stream conflict)
- SEO: JSON-LD structured data on episode + how-it-works pages
- SEO: noscript fallbacks, RSS links, twitter meta tags
- Episode 9 transcript and sitemap update

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-12 00:24:37 -07:00
parent 953c501f75
commit 75f15ba2d2
13 changed files with 604 additions and 53 deletions

View File

@@ -58,6 +58,7 @@ CASTOPOD_PASSWORD = "podcast2026api"
PODCAST_ID = 1
PODCAST_HANDLE = "LukeAtTheRoost"
OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY")
WHISPER_MODEL = "base" # Options: tiny, base, small, medium, large
# NAS Configuration for chapters upload
@@ -543,6 +544,7 @@ def add_episode_to_sitemap(slug: str):
print(f" Added episode to sitemap.xml")
def get_next_episode_number() -> int:
"""Get the next episode number from Castopod."""
headers = get_auth_header()