Hedgehog is a podcast player and organizer with a terminal-based user interface.
- Subscription management and automatic feed updates. Using Hedgehog you can subscribe to RSS feeds, they will automatically be updated on startup or upon request.
- Keeping track of the status of each episode. Hedgehog remembers whether you have played each episode before, whether you finished, or where you stopped. It can then resume playback from that point.
- Searching online for new feeds to subscribe to. Hedgehog can search for podcasts by their titles online, so there is no need to look for the RSS link.
- Flexible theming. The visual style of any component of the Hedgehog's UI can be recolored in a state-dependent manner. There are several built-in themes. They are listed in THEMES.md. The manual contains a detailed reference for creating custom themes.
- Fully configurable keybindings. Hedgehog is almost exclusively controlled through issuing commands either directly or through key bindings. All of these keybindings can be changed by the user's configuration.
- Integration with external programs through MPRIS. On Linux and other operating systems with dbus integration, Hedgehog reports its status through MPRIS and accepts commands from external software.
- Mouse support in the terminal-based UI. Hedgehog is a terminal application, and it's designed to be fully controlled via the keyboard. But much of its functionality (playback control, navigation, episode and feed selection, etc.) can be accessed through mouse actions.
Hedgehog comes with a user manual in the form of a man page that can be viewed
via man hedgehog 1
on a UNIX-like platforms. It's also available online at
poletaevvlad.github.io/Hedgehog/hedgehog.1.html.
Hedgehog has some runtime dependencies that must be installed before Hedgehog can be either compiled from source or installed from binary distribution.
- SQLite libs
- dbus (For MPRIS support)
- OpenSSL
- GStreamer and Gstreamer's good plugins
Please note, that these libraries are common enough for you to be able to install them through your operating system package manager.
On Windows you can install GStreamer using the official installer or via a package manager. Make sure to add GStreamer's bin directory to the "PATH" environment variable.
To build Hedgehog from sources you will need a rust compiler (1.56.0 or newer) and cargo package manager. You should also have all dependencies installed before compiling Hedgehog. Otherwise, there is no additional configuration required.
Hedgehog can be built and launched using cargo (cargo run --release
). Cargo
will build the application and its environment. If you wish to install Hedgehog
for greater convenience you'll need to build and install configuration files
(themes and rc). cargo install
isn't suitable for that. There are scripts for
correctly building Hedgehog included in the source code for each of the
supported operating systems.
This repository contains a makefile with building and installation targets. It
will install Hedgehog binary, default configuration files and themes, and a
manpage into standard directories (/usr/bin
, /usr/share/
, etc.)
$ git clone https://github.com/poletaevvlad/Hedgehog.git
$ cd Hedgehog
$ make
$ sudo make install
For these commands to succeed, you need to have 'jq' installed.
For building Hedgehog for Windows you need to execute build-win
script:
build-win x86_64
for 64-bit systems and build-win i686
for 32-bit. It will
generate the executable and configuration files in the "build" directory. Note
that you need to have 'jq' and development
files of GStreamer installed for this process to succeed. You also need to
install pkg-config
and setup PATH
and PKG_CONFIG_PATH
for GStreamer.
Hedgehog under MacOS should work, but it's not officially supported. If you wish to test it and create a CI pipeline for it, you are more than welcome to do so.
You may wish to avoid installing all necessary build tools and libraries needed to compile Hedgehog from sources. In such cases, you may use one of the pre-compiled packages from the "Releases" section of the GitHub repository. Make sure to choose the correct package for your operating system and processor architecture.
For Linux, the pre-compiled archives contain an executable install.sh
script
intended to install binaries, configuration, and documentation into the system
directory. You can change the installation destination by setting the PREFIX
environment variable. Installing Hedgehog this way also creates a script
/usr/share/hedgehog/uninstall.sh
which removes all installed files but keeps
user-specific data and configuration. It requires the same PREFIX
as was
passed to install.sh.
For Windows, the binary distribution can be installed at any position of your choosing just by unzipping the archive.
If you found a bug or have a suggestion for a feature you'd like to see implemented, don't hesitate to open an issue on GitHub at https://github.com/poletaevvlad/Hedgehog/issues.
You are also invited to participate in the development of Hedgehog if you want to make a small improvement to the code or documentation, by contributing in the form of a pull request into this repository. If you wish to work on the more substantial change, you are also welcome to do so, but filing an issue first would be best.
Hedgehog is open-source software and its source code is published under Apache License 2.0. All contributions are assumed to be made under this license.