All Projects → xgi → Castero

xgi / Castero

Licence: mit
TUI podcast client for the terminal

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Castero

Rtv
Browse Reddit from your terminal
Stars: ✭ 4,558 (+1115.47%)
Mutual labels:  terminal, command-line, tui, curses
Dte
A small, configurable console text editor (moved to https://gitlab.com/craigbarnes/dte)
Stars: ✭ 98 (-73.87%)
Mutual labels:  terminal, tui, curses
Termox
C++17 Terminal User Interface(TUI) Library.
Stars: ✭ 306 (-18.4%)
Mutual labels:  terminal, tui, curses
Gitui
Blazing 💥 fast terminal-ui for git written in rust 🦀
Stars: ✭ 6,762 (+1703.2%)
Mutual labels:  terminal, tui, hacktoberfest
Brick
A declarative Unix terminal UI programming library written in Haskell
Stars: ✭ 1,070 (+185.33%)
Mutual labels:  terminal, tui, curses
Navi
An interactive cheatsheet tool for the command-line
Stars: ✭ 10,055 (+2581.33%)
Mutual labels:  terminal, command-line, hacktoberfest
Progressbar
A really basic thread-safe progress bar for Golang applications
Stars: ✭ 2,212 (+489.87%)
Mutual labels:  terminal, command-line, hacktoberfest
Ltui
🍖 A cross-platform terminal ui library based on Lua
Stars: ✭ 624 (+66.4%)
Mutual labels:  terminal, tui, curses
Tuicss
Text-based user interface CSS library
Stars: ✭ 167 (-55.47%)
Mutual labels:  terminal, tui, curses
Mandown
man-page inspired Markdown viewer
Stars: ✭ 173 (-53.87%)
Mutual labels:  terminal, command-line, tui
Sad
CLI search and replace | Space Age seD
Stars: ✭ 350 (-6.67%)
Mutual labels:  terminal, command-line, tui
Tldr
📚 Collaborative cheatsheets for console commands
Stars: ✭ 36,408 (+9608.8%)
Mutual labels:  terminal, command-line, hacktoberfest
Clifx
Declarative framework for building command line interfaces
Stars: ✭ 900 (+140%)
Mutual labels:  terminal, command-line, hacktoberfest
Zui
⬢ Zsh User Interface library – CGI+DHTML-like rapid application development with Zsh
Stars: ✭ 95 (-74.67%)
Mutual labels:  terminal, tui, curses
Bat
A cat(1) clone with wings.
Stars: ✭ 30,833 (+8122.13%)
Mutual labels:  terminal, command-line, hacktoberfest
Nnn
n³ The unorthodox terminal file manager
Stars: ✭ 13,138 (+3403.47%)
Mutual labels:  terminal, command-line, tui
Jquery.terminal
jQuery Terminal Emulator - JavaScript library for creating web-based terminals with custom commands
Stars: ✭ 2,623 (+599.47%)
Mutual labels:  terminal, command-line, tui
Picotui
Lightweight, pure-Python Text User Interface (TUI) widget toolkit with minimal dependencies. Dedicated to the Pycopy project.
Stars: ✭ 547 (+45.87%)
Mutual labels:  terminal, tui, curses
Smenu
smenu started as a lightweight and flexible terminal menu generator, but quickly evolved into a powerful and versatile CLI selection tool for interactive or scripting use.
Stars: ✭ 1,906 (+408.27%)
Mutual labels:  terminal, command-line, tui
Goaccess
GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.
Stars: ✭ 14,096 (+3658.93%)
Mutual labels:  terminal, command-line, tui

castero

GitHub release PyPI CircleCI Codacy Grade Codacy Coverage

castero is a TUI podcast client for the terminal.

example client screenshot

Installation

Install from PyPi with pip:

$ pip3 install castero

Upgrading:

$ pip3 install castero --upgrade

Manual Installation

$ git clone https://github.com/xgi/castero
$ cd castero
$ sudo python setup.py install

Dependencies

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

Usage

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

Importing/exporting feeds from another client

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.

Configuration

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.

Testing

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

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].