Massively expanded all 8 caller topic pools from ~1200 to ~2500 entries to
reduce repeat calls. Added persistent topic history (data/used_topics_history.json)
with 30-day aging to prevent cross-episode duplicates. Published episode 35.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Castopod password, DB password, BunnyCDN keys, Postiz JWT/IDs,
and monitoring token all moved to environment variables.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- make_clips.py: Extract best moments from episodes as short-form clips
(9:16 vertical MP4 with captions for TikTok/Shorts/Reels)
- deploy_stats_cron.sh: Deploy podcast_stats.py to NAS as Docker container
running hourly with auto-restart
- podcast_stats.py: Add _find_ytdlp() for Docker compatibility, auto-detect
local Docker for Castopod DB queries
- publish_episode.py: Upgrade Whisper model from base to large-v3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add podcast_stats.py with --json/--upload flags for BunnyCDN
- Add website/stats.html fetching stats from CDN
- Add stats CSS styles
- SEO: shorten title/description, add og:site_name, twitter cards,
theme-color, image dimensions, consistent favicons and cache-busting
- Add all episode transcript pages to sitemap.xml with lastmod
- Auto-add new episodes to sitemap in publish_episode.py
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>