Taken from a post on r/cybersecurity
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 by check_active_podcasts.pypodcast_update.csv: Full status report for all PodcastIndex-tracked podcasts — generated by check_active_podcasts.pyurl_status.csv: Full status report for all podcast website URLs — generated by check_active_sites.pychangelog.txt: History of updates and changes to the systemtests/: Automated tests for URL extraction and CSV validation logicInstall all Python dependencies from requirements.txt:
pip install -r requirements.txt
Python 3.8+ is required.
check_active_podcasts.py reads podcastindex.org links from List_of_podcast.md, discovers
podcast RSS/Atom feeds, checks each feed’s latest episode publish date, and generates two CSV files:
podcast_status.csv: Only podcasts updated within the last 30 dayspodcast_update.csv: All podcasts with their current statuscheck_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 formats to reduce Unknown results.
A scheduled GitHub Actions workflow (.github/workflows/check_podcasts.yml) runs every
Monday and:
check_active_podcasts.py and check_active_sites.pypodcast_update.csv, podcast_status.csv, and url_status.csv back to the repositoryYou 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.py
To check all podcast website URLs:
python check_active_sites.py
To run the test suite locally:
pip install pytest
python -m pytest tests/ -v
This 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 IDSee changelog.txt for a detailed history of updates and changes to the podcast list and system.