Install Podliner using Winget - wingetCollections
Go back Packages Podliner Use this command to install Podliner:
winget install --id=TimKicker.Podliner -e Copy WinGet command to clipboard Podliner is a cross-platform terminal user interface (TUI) podcast player designed for efficient offline listening in any terminal environment. It provides a fast, clean, and distraction-free experience for managing podcasts directly from the command line.
Key Features:
Keyboard-first navigation with Vim-style shortcuts (j/k for scrolling, gg/G for jumping to top/bottom, / to search).
Offline playback capabilities, allowing users to download episodes and resume listening at any time.
Support for multiple audio engines, including mpv, FFmpeg (ffplay), VLC, and Windows Media Foundation, ensuring flexibility across platforms.
OPML import/export functionality for seamless migration of subscriptions from other podcast players.
Cross-platform compatibility with single-file builds available for Linux, macOS, and Windows.
A clean, minimalist interface optimized for terminal use.
Audience & Benefit:
Ideal for podcast enthusiasts who prefer terminal-based tools or value offline functionality. Podliner helps users efficiently consume podcasts without internet access, customize their listening experience, and easily migrate from other players. It is particularly beneficial for developers and power users seeking a lightweight, keyboard-driven solution for managing podcasts.
Podliner can be installed via winget on Windows, making it accessible to all users looking for a terminal-centric podcast player.
README 1.3.1
Copy WinGet command to clipboard 1.3.0
Copy WinGet command to clipboard 1.2.2
Copy WinGet command to clipboard 1.2.1
Copy WinGet command to clipboard 1.1.7
Copy WinGet command to clipboard 1.1.6
Copy WinGet command to clipboard 1.1.5
Copy WinGet command to clipboard 1.0.26
Copy WinGet command to clipboard gg/G
/
:add
:queue add
:opml import
:opml export
Chapters. Podcast-2.0 `` JSON and ID3 CHAP frames, with a dedicated Chapters tab and ,/. keys to jump.
Sync progress and subscriptions via the gPodder API (gpodder.net + Nextcloud gPodder-Sync, auto-detected).
MPRIS on Linux. Media keys (play/pause/next/prev) and status from playerctl, KDE/GNOME widgets, etc.
Offline-ready. Download episodes, resume where you left off, manage a queue.
Sleep timer. :sleep 30m / :sleep 1h30m to stop playback after a duration.
Per-feed settings. Speed override (:feed speed 1.5) and auto-download (:feed auto-download on) per subscription.
Undo for destructive actions like queue clear.
Easy migration. OPML import/export to move subscriptions between players.
Cross-platform. Single-file builds for Linux, macOS, and Windows.
Engine choice. Works with mpv, ffplay (FFmpeg), or VLC where available.> No telemetry. Config lives in your user profile. All local.
Screenshots
Install (stable releases)
Linux bash <(curl -fsSL https://github.com/timkicker/podliner/releases/latest/download/install.sh)
Or via the AUR : yay -S podliner-bin
macOS bash <(curl -fsSL https://github.com/timkicker/podliner/releases/latest/download/install-macos.sh)
Windows (Powershell) winget install --id=TimKicker.Podliner -e
irm https://github.com/timkicker/podliner/releases/latest/download/install.ps1 | iex
> Looking for system-wide install, uninstall, pruning, or checksum verification? See the FAQ .
Migrate from other players (OPML) Most podcast players support OPML export/import.
Export your subscriptions from the old player as an .opml file (e.g. subscriptions.opml).
In podliner , run :opml import to import.
To export your current subscriptions from podliner, run :opml export. With no path, it writes to your Documents folder as:
Linux/macOS: ~/Documents/podliner-feeds.opml
Windows: %USERPROFILE%\Documents\podliner-feeds.opml
If you prefer to drop files in place, podliner stores its config here:
Linux/macOS: ${XDG_CONFIG_HOME}/podliner or ~/.config/podliner
Windows: %APPDATA%\podliner
gPodder sync Podliner syncs your subscriptions and play history with any gPodder-compatible server. Two protocol flavors are supported and auto-detected at login:
gpodder.net (public) + self-hosted gpodder API v2 servers (mygpo, opodsync, podfetch…).
Nextcloud with the gPodder-Sync app.
# gpodder.net
:sync login https://gpodder.net
# Nextcloud (plain username/password works; see 2FA note below)
:sync login https://cloud.example.com
:sync ← pull + push (full sync)
:sync auto on ← sync automatically on startup and exit
Nextcloud + 2FA / WebAuthn: generic Basic-Auth with your normal password fails with HTTP 401 on 2FA-enabled accounts. Create a dedicated App-Password in Nextcloud (Settings → Security → Devices & sessions → Create new app password ) and use that.
The detected flavor is stored in gpodder.json so subsequent launches don't re-probe. :sync status shows which flavor is active. Run :sync help in the app for the full command reference.
Credentials are stored in the OS keyring when available (libsecret on Linux, Keychain on macOS, Credential Store on Windows), with a plaintext fallback in gpodder.json if the keyring is unavailable.
Commands (essentials) > Full help browser: :h | Full list: see COMMANDS
Enter: play selected
Space: pause/resume
Left/Right: seek 10s backward/forward
[ / ]: slower / faster
, / .: previous / next chapter (if available)
:sleep 30m | :sleep 1h30m | :sleep off: sleep timer
j / k: move down / up
gg / G: jump to top / bottom
/ : search in current list
u : toggle "unplayed only"
i: open Shownotes tab • Esc: back to episodes
Dedicated Chapters tab next to Episodes/Details; shows Chapters (N) with a count
, / .: jump to previous / next chapter globally
Enter on a chapter row: seek to that chapter
:chapter list|next|prev|jump : explicit commands
Chapters come from Podcast-2.0 `` URLs and ID3 CHAP frames (local file or HTTP Range)
d : download or show status
:feed queue : switch to queue view
:queue add|rm|clear|shuffle : queue ops for selected episode
:play-next / :play-prev : next/previous in queue
:undo : revert the last destructive action (e.g. :queue clear)
:add : add feed
:feed all|saved|downloaded|history|queue : switch view
:feed speed : per-feed playback speed override (e.g. :feed speed 1.5)
:feed auto-download on|off : auto-queue new episodes from this feed for download
t : toggle theme
q : quit
:w / :wq : save / save & quit
Configuration & data
Config :
Linux: $XDG_CONFIG_HOME/podliner/ (fallback: ~/.config/podliner/)
macOS: $XDG_CONFIG_HOME/podliner/ (fallback: ~/.config/podliner/)
Windows: %APPDATA%\podliner\
Logs :
Linux: $XDG_STATE_HOME/podliner/logs/ (fallback: ~/.local/state/podliner/logs/)
Windows: %LOCALAPPDATA%\podliner\logs\
File pattern: podliner-.log (daily)
Example: …/podliner/logs/podliner-YYYYMMDD.log
Downloads : ~/Podcasts/ by default (all platforms). Override at runtime with :downloads set-dir (or set-dir reset to restore default), or by setting DownloadDir in appsettings.json.
OPML : imports/exports under Migrate from other players (OPML)
> Back up appsettings.json and library.json to migrate settings and library to another machine.
Audio engines podliner can use different players:
VLC (via LibVLC; bundled on Windows via VideoLAN.LibVLC.Windows, install vlc on Linux/macOS). Preferred: full seek/speed/volume support.
mpv (IPC socket). Full feature support.
Media Foundation (Windows only, built-in). No playback speed control.
ffplay (part of ffmpeg). Fallback only: coarse seek by restart, no live speed/volume.
Debian/Ubuntu: sudo apt-get install -y vlc mpv ffmpeg
Fedora: sudo dnf install -y vlc mpv ffmpeg
Arch: sudo pacman -S --needed vlc mpv ffmpeg
macOS: brew install --cask vlc && brew install mpv ffmpeg
Windows: VLC is bundled; mpv/ffmpeg optional via your package manager of choice.
Engine selection & fallback:
Default is auto: tries VLC first, then an OS-specific fallback chain (Windows: MediaFoundation → mpv → ffplay; Linux/macOS: mpv → ffplay).
Switch engines at runtime with :engine vlc|mpv|ffplay|mediafoundation.
:play-source auto|local|remote controls whether to prefer local downloads or the remote URL.
FAQ / Troubleshooting
"No audio engine found”
System-wide install?
Linux/macOS: add --system to the install command.
Windows (PowerShell): run Install-Podliner -System after the bootstrap line.
Update / Uninstall / Prune
Update to latest stable: re-run the install command for your OS.
Uninstall (Linux):
bash <(curl -fsSL https://github.com/timkicker/podliner/releases/latest/download/install.sh) --uninstall
Uninstall (macOS):
bash <(curl -fsSL https://github.com/timkicker/podliner/releases/latest/download/install-macos.sh) --uninstall
Uninstall (Windows, PowerShell):
irm https://github.com/timkicker/podliner/releases/latest/download/install.ps1 | iex
Uninstall-Podliner
Prune old versions (keep active): use --prune on Linux/macOS or Prune-Podliner on Windows.
Verify checksums # Download checksums (stable)
curl -fsSLO https://github.com/timkicker/podliner/releases/latest/download/SHA256SUMS
# Example: verify Linux x64 tarball
curl -fsSLO https://github.com/timkicker/podliner/releases/latest/download/podliner-linux-x64.tar.gz
grep 'podliner-linux-x64.tar.gz$' SHA256SUMS | sha256sum -c -
podliner: command not found Add install path to PATH:
Linux: export PATH="$HOME/.local/bin:$PATH" (in ~/.bashrc / ~/.zshrc)
macOS: export PATH="$HOME/bin:$PATH" (in ~/.zprofile / ~/.zshrc)
Windows: ensure %LOCALAPPDATA%\Microsoft\WindowsApps is on PATH
Reset config
Contributing I welcome all focused PRs.
dotnet build
dotnet run --project StuiPodcast.App
C# with nullable enabled; keep logging via Serilog.
Prioritize robustness and UX over features.
Fork → branch → PR to main
Bug reports, logs & roadmap When filing an issue, please include:
podliner --version output (shows exact version + RID)
OS + architecture (e.g., linux-x64, osx-arm64, win-x64)
Steps to reproduce (short and precise)
Logs : attach the most recent file from logs/ next to the binary (pattern podliner-*.log)
Example: …/podliner/logs/podliner-20250101.log
License and credits
VLC - media engine (via LibVLC)
mpv - media engine (optional)
FFmpeg / ffplay - tools and fallback playback