This repository maintains a list of security-focused podcasts and tracks their activity status.
List_of_podcast.md: The comprehensive list of security podcasts with their descriptions and links (canonical input for all scripts)check_active_podcasts.py: Checks activity of PodcastIndex-listed podcasts and writes status CSVscheck_active_sites.py: Checks activity of all podcast website URLs, skipping social media linkspodcast_status.csv: Active podcasts (updated within the last 30 days) — generated bycheck_active_podcasts.pypodcast_update.csv: Full status report for all PodcastIndex-tracked podcasts — generated bycheck_active_podcasts.pyurl_status.csv: Full status report for all podcast website URLs — generated bycheck_active_sites.pychangelog.txt: History of updates and changes to the systemtests/: Automated tests for URL extraction and CSV validation logic
Install all Python dependencies from requirements.txt:
pip install -r requirements.txtPython 3.8+ is required.
check_active_podcasts.py reads podcastindex.org links from List_of_podcast.md, checks
each podcast's last update time via HTTP, and generates two CSV files:
podcast_status.csv: Only podcasts updated within the last 30 dayspodcast_update.csv: All podcasts with their current status
check_active_sites.py provides a broader check across all podcast website URLs in
List_of_podcast.md, automatically skipping social media and profile links (Twitter/X,
Mastodon instances, Reddit, YouTube channel pages) so only actual podcast sites are
validated. Results are written to url_status.csv.
Both scripts include automatic retries on transient network errors and handle multiple
date-header formats to reduce Unknown results.
A scheduled GitHub Actions workflow (.github/workflows/check_podcasts.yml) runs every
Monday and:
- Executes
check_active_podcasts.pyandcheck_active_sites.py - Commits updated
podcast_update.csv,podcast_status.csv, andurl_status.csvback to the repository
You can also trigger the workflow manually from the Actions tab using the "Run workflow" button.
A separate workflow (.github/workflows/tests.yml) runs the test suite on every push
and pull request.
To check PodcastIndex podcast status:
python check_active_podcasts.pyTo check all podcast website URLs:
python check_active_sites.pyTo run the test suite locally:
pip install pytest
python -m pytest tests/ -vThis site is deployed to Cloudflare Pages. On every push to main, the GitHub Actions workflow in .github/workflows/deploy.yml builds the Jekyll site and deploys it via the Cloudflare Wrangler action.
To enable deployments, add the following secrets to the repository:
CLOUDFLARE_API_TOKEN– Cloudflare API token with Pages edit permissionsCLOUDFLARE_ACCOUNT_ID– Your Cloudflare account ID
See changelog.txt for a detailed history of updates and changes to the podcast list and system.