castero is a TUI podcast client for the terminal.
Install from PyPi with pip:
$ pip3 install castero
Upgrading:
$ pip3 install castero --upgrade
$ git clone https://github.com/xgi/castero
$ cd castero
$ sudo python setup.py install
Running castero requires the following external dependencies:
- Python >= 3.5 (check the output of
python --version
) - sqlite3
- At least one of the following media players:
- vlc >= 2.2.3
- (mpv and libmpv) >= 0.14.0
After installing castero, it can be run with simply:
$ castero
The help menu provides a list of controls and can be accessed by pressing h. Alternatively, see the list below:
Commands
h - show this help screen
q - exit the client
a - add a feed
d - delete the selected feed
r - reload/refresh feeds
s - save episode for offline playback
UP/DOWN - navigate up/down in menus
RIGHT/LEFT - navigate right/left in menus
PPAGE/NPAGE - scroll up/down in menus
ENTER - play selected feed/episode
SPACE - add selected feed/episode to queue
c - clear the queue
n - go to the next episode in the queue
i - invert the order of the menu
/ - filter the contents of the menu
m - mark episode as played/unplayed
p or k - pause/play the current episode
f or l - seek forward
b or j - seek backward
=/- - increase/decrease volume
]/[ - increase/decrease playback speed
u - show episode URL
1-4 - change between client layouts
castero supports importing and exporting an OPML file of your subscriptions in order to easily transfer them between other podcast clients. Please refer to your other client's documentation for details on how/if it supports this format.
Importing and exporting from castero are available with command line flags.
Run castero --help
for details.
The configuration file is located at {HOME}/.config/castero/castero.conf
after the client has been run at least once.
Please see the default castero.conf for a list of available settings.
User data, including downloaded episodes and a database with your feed
information, is located at {HOME}/.local/share/castero/
. These files are not
intended to be manually modified. Removing the database will simply cause
castero to replace it with an empty one the next time you run the client.
This project uses pytest for testing. To run tests, run the following command in the project's root directory:
$ python -m pytest tests
You can also run tests for an individual unit, i.e.:
$ python -m pytest tests/test_feed.py