Podcast To SD Card

April 12, 2026 ยท View on GitHub

A desktop GUI app (PyQt6) that syncs podcast episodes from an RSS feed to a micro SD card.

Features

  • First run: Formats the SD card (exFAT), names it based on the podcast, and downloads as many episodes as will fit (newest first)
  • Subsequent runs: Detects played episodes (via file access time heuristics or manual marking), deletes them, and downloads new episodes into the freed space
  • SQLite tracking: A lightweight .podcast_sync.db on the card itself tracks episode metadata and play status
  • SD card detection: Auto-detects removable devices via lsblk/udisksctl

Requirements

  • Python 3.10+
  • PyQt6
  • Linux with udisks2 (standard on most desktop distros)

Install

pip install feedparser requests PyQt6

Run

python -m podcast_to_sd

How It Works

  1. Enter a podcast RSS feed URL and click Fetch Feed
  2. Select your SD card from the dropdown
  3. Click Sync Now
    • First sync: confirms formatting, downloads episodes
    • Later syncs: removes played episodes, downloads new ones
  4. Eject the card and listen on any device

Play Detection

The app checks if an episode file's access time (atime) is newer than its modification time (mtime). If a media player opened the file, this heuristic marks it as "played." You can also manually mark episodes as played/unplayed in the episode table.