Catalog PyPI
Back to packageRELEASE DETAILS

0.4.8

PyPI

aetherpod

Terminal Podcast Manager — subscribe, browse, and play podcasts from your terminal

audiompvpodcastpodcastsrssterminaltextualtui
Published11 Aug 2026
Direct dependencies3
Transitive dependenciesNot calculated

README

Version 0.4.8 documentation
╔══════════════════════════════╗
║       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.9+ GPLv3 Textual 1.0 PyPI 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, TTL-gated so repeat launches are fast and feeds only refetch when stale
  • Splash screen — branded startup with subscription stats
  • Audio EQ presets — 3 voice-optimized EQ profiles (Bright / Warm / Balanced) with lookahead limiter — toggle instantly with 1–4. 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

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

Prefer a package manager? pip install aetherpod (PyPI) works on Linux, macOS, and Windows.

PlatformDownload
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.9+
  • 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 (1–4) 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

AetherPod is on PyPI and published to GitHub Releases on every version tag.

Option 1 — pip / pipx (recommended, all platforms):

pipx install aetherpod        # isolated env + on PATH (best for a CLI/TUI)
# or
pip install --user aetherpod

Option 2 — Interactive installer (from source):

git clone https://github.com/AetherSolDev/AetherPod.git
cd AetherPod
bash scripts/install.sh

Option 3 — Makefile:

make install           # system-wide
make install-user      # user-local, no root

Option 4 — 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
  • pip / pipx installs — upgrade via pip install --upgrade aetherpod (or pipx upgrade aetherpod). aetherpod -u also works for editable/git installs.
  • Executable installs — download the new binary from the Releases page (-u requires pip/git and will not work inside a bundled executable).

Usage

KeyAction
aAdd feed
sSort feeds (subscribe order → A-Z → Z-A)
fFilter feeds by name
EnterBrowse episodes / Play
SpacePause / Resume
sStop (Episode screen)
[ / ]Speed down / up
← / →Seek -30s / +30s
1 / 2 / 3 / 4EQ presets: Off / Bright / Warm / Balanced (mpv only)
fToggle unplayed filter (Episode screen)
aAdd to play queue
vView play queue
/Search across all feeds
dEpisode details
NNow-playing screen
tToggle theme
qQuit
?Help

Data

DataLocation
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.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 3

Native requirements
3 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
feedparser
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
feedparser<7.0,>=6.0runtime
textual
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
textual<2.0,>=0.41runtime
aiohttp
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
aiohttp<4.0,>=3.9runtime

Distribution files

2 collected
aetherpod-0.4.8-py3-none-any.whl

bdist_wheel · 80.01 KB · Python py3

Source file
aetherpod-0.4.8.tar.gz

sdist · 84.15 KB · Python source

Source file

Repository

PENDING
aethersoldev/aetherpod

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:55 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:5519e815a3f3ebf43bd7bb7bfeac3feb8db9c8b9e9c3707de6520e336ba9e450

Other collected versions

View all collected versions →