Press play once.
The queue fills itself.
pdcst is a keyboard-driven terminal podcast player in pure Rust - one binary, no cloud, no account. Mark a show once and new episodes auto-fill your Up Next at publish time, interleaved so you never get a run of the same show, never touching what's playing.
Public preview - build it from source.
pdcst is feature-complete and in daily use by its author; the repository is open while packaging and release land. Today that means a Rust toolchain; binaries and the one-liner follow with the first release:
$ cargo install --git https://github.com/jhheider/pdcst pdcst $ curl -fsSL https://heider.cc/pdcst.sh | bash # soon
The core loop
Set it, forget it, press space
Feeds refresh on their own - a few seconds after launch, then on an interval. Episodes stream to disk and start playing after a 256 KiB prebuffer, so playback doesn't wait for downloads. Finish an episode and the queue advances itself.
A live build, real feeds: import subscriptions, browse
99% Invisible, queue episodes with a, and
the Up Next view. Auto-queued feeds fill this list
themselves as episodes publish.
AThe auto-queue
The reason the project exists. Mark a feed and new episodes append or prepend themselves, capped at a depth you choose, with listen state tracked for every episode.
[ ]Real 1.5x
Pitch-corrected speed via wsola, a WSOLA time-stretch engine written for this player. No chipmunks.
⏸Resume anywhere
Position survives restarts. Unplayed, in-progress, and played states persist per episode in SQLite.
⛁Bounded cache
Episodes delete on finish; the cache respects episode and megabyte caps. Your disk is not a podcast archive unless you ask it to be.
Keyboard-first
Everything under your fingers
Bring your subscriptions with you:
pdcst --import podcasts.opml takes a Pocket
Casts (or any) OPML export and exits;
--export hands them back.
Why it exists
An homage to one perfect feature
Unapologetically inspired by the inestimable Pocket Casts, whose auto-managed Up Next queue is the thing this project exists to reproduce. On a commute that queue was the whole game. - the README
Not the goal: cloud sync, discovery, or a settings-heavy UI. The edge is simple - mine, fast, self-contained, doesn't crash, and keeps the queue full.
pdcst is a personal tool that runs well for its author, shared to read and to build, with no support promised. Built on ratatui, rodio, and sqlx; TLS is rustls with ring - no OpenSSL anywhere in the tree.