Skip to main content
╔══════════════════════════════╗
║       A E T H E R P O D      ║
║   Terminal Podcast Manager   ║
╚══════════════════════════════╝

AetherPod

Terminal Podcast Manager
Subscribe, browse, and play podcasts — all from your terminal.
BTW.. I use Arch

Linux macOS Windows Python 3.14+ GPLv3 Textual 1.0 Build


Screenshots

Demo

Splash Episodes Playing Details


Features

  • Subscribe to any RSS/Atom podcast feed
  • Browse episodes in a sortable DataTable with live progress bars
  • Zebra-striped lists — alternating row colors on feeds and episode tables for easy scanning
  • Sort & filter feeds — alphabetical order toggle (s) and inline name filter (f)
  • Play / pause / seek / speed control via mpv IPC
  • Resume playback where you left off
  • Cross-feed search
  • Play queue — auto-plays next episode on natural end
  • OPML import / export — migrate from other podcast apps
  • Dark / light theme toggle
  • Async feed refresh — instant cache on startup, background updates
  • Splash screen — branded startup with subscription stats
  • Audio EQ presets — 3 voice-optimized EQ profiles (Bright / Warm / Balanced) with lookahead limiter — toggle instantly with 14. mpv only: EQ requires mpv's lavfi audio filter bridge, so it works on Linux/macOS (mpv) but is unavailable on Windows (which uses VLC).
  • Automatic update check — on startup, notifies you when a newer version is available (aetherpod -u to upgrade)

Download a Pre-Built Executable (Recommended)

No Python or pip needed. Grab the binary for your platform from the Releases page (or the latest Actions build artifacts):

Platform Download
Windows (x86_64) aetherpod-windows.exe
Linux (x86_64) aetherpod-linux
macOS (Apple Silicon) aetherpod-macos-arm64
macOS (Intel) aetherpod-macos-x86_64

The binaries are unsigned, so Windows SmartScreen and macOS Gatekeeper may warn on first run. Windows: click More info → Run anyway. macOS: xattr -d com.apple.quarantine aetherpod-macos.


Quick Start

Prerequisites

  • Python 3.14+
  • mpv (Linux/macOS) or VLC (Windows, or any platform) — audio player

Windows: VLC is detected automatically even when not on PATH (installed under Program Files or the registry). AetherPod uses VLC on Windows since mpv's control channel is Linux/macOS-only.

macOS: VLC.app and Homebrew are detected even when not on PATH (/Applications/VLC.app/Contents/MacOS/vlc, /opt/homebrew, /usr/local). mpv is preferred when present.

EQ on Windows: the audio EQ presets (14) require mpv and are therefore not available on Windows (VLC is used there). mpv-on-Windows support is on the roadmap.

# Install mpv (Arch)
sudo pacman -S mpv

# Install mpv (Debian/Ubuntu)
sudo apt install mpv

# Install mpv (macOS)
brew install mpv

Install

Choose one:

# Option A — Interactive installer (recommended)
git clone https://github.com/AetherSolDev/AetherPod.git
cd AetherPod
bash scripts/install.sh

# Option B — Makefile (system-wide)
make install

# Option C — Makefile (user-local, no root)
make install-user

# Option D — Manual venv
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .

scripts/install.sh walks you through system-wide, user-local, or venv installation.

Run

aetherpod           # Launch TUI
aetherpod --help    # CLI usage
aetherpod list     # List subscribed feeds

Notes

  • Resume playback — AetherPod saves your position and resumes when you press Enter on a partially-played episode. This works reliably for local files. For streaming URLs, resume depends on whether the podcast host's CDN supports HTTP range requests (--start). If the episode restarts from the beginning, the CDN is rejecting the seek — this is a host limitation, not a bug. Downloading the episode would allow reliable resume.

Updating

AetherPod checks GitHub for a newer version on startup and shows a notification when one is available.

aetherpod -u    # Upgrade to the latest version
  • Editable / pip installs-u pulls the update straight from git (no release build needed).
  • Executable installs — download the new binary from the Releases page (-u requires pip/git and will not work inside a bundled executable).

Usage

Key Action
a Add feed
s Sort feeds (subscribe order → A-Z → Z-A)
f Filter feeds by name
Enter Browse episodes / Play
Space Pause / Resume
s Stop (Episode screen)
[ / ] Speed down / up
/ Seek -30s / +30s
1 / 2 / 3 / 4 EQ presets: Off / Bright / Warm / Balanced (mpv only)
f Toggle unplayed filter (Episode screen)
a Add to play queue
v View play queue
/ Search across all feeds
d Episode details
N Now-playing screen
t Toggle theme
q Quit
? Help

Data

Data Location
State ~/.local/state/aetherpod/state.json
EQ presets (user-editable) ~/.config/aetherpod/eq.json
Logs ~/.local/state/aetherpod/log/aetherpod.log

Override state path with --data /custom/path.json (supports relative paths for USB portability).


License

GPLv3 — Free as in freedom.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aetherpod-0.4.4-py3-none-any.whl (78.6 kB view details)

Uploaded Python 3

File details

Details for the file aetherpod-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: aetherpod-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 78.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for aetherpod-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 09f1cb9ebd9349eabf605d0f9eb56658100a8f0b93b824bea38920781002d2c9
MD5 abcf64dd7abb86f25f00c356449725ea
BLAKE2b-256 741c864d8505aa422b90b163cf3ca72e4f7e2655ef3e5d3cec2c16d903aa0eca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page