Skip to content

margual56/radio-cli

Repository files navigation

GitHub Rust

radio-cli

A simple radio CLI written in rust.

NEW: Now it can search for any radio station! Just select the "Other" option to be prompted for the search.

asciicast

Warning! (DEPENDENCIES)

  • Needed: mpv is called to play the audio/video. (See the How it works section).
  • Optional dependency: To play youtube music you need to have yt-dlp or youtube-dl installed!

Contributing and code of conduct

Please, take a look at the Contributing and Code of Conduct guidelines

Usage

To use it, just type radio-cli after installing it and the program will guide you.

When playing music, you can use the mpv keybindings to control it (spacebar to play/pause, etc).

You can add a country to your config (optional) and search for any radio station!

Installation

  • On Arch (and derivatives such as Manjaro), you can just install it through the AUR package called radio-cli-bin. If you have an AUR helper:
$ yay -S radio-cli-bin

Note: radio-cli-git is now unsupported

  • On other systems you can:
    • Install it manually, without automatic update capabilities:
      git clone https://github.com/margual56/radio-cli.git radio-cli
      cd radio-cli
      cargo build --release
      sudo cp "./target/release/radio-cli" "/usr/bin/radio"
      mkdir -p "${XDG_CONFIG_HOME}/radio-cli/"
      cp "./config.json" "${XDG_CONFIG_HOME}/radio-cli/"
    • Install it through cargo: cargo install --git https://github.com/margual56/radio-cli

How it works...

...is very simple. The idea is to have a compilation of radio stations in the config file and have a tool to be able to easily select one or the other.

The rest is thanks to the wonderful and amazing mpv player. mpv is the one that does all the heavy-lifting and plays whatever you throw at it.

Let's say this is just a cli frontend for playing things on mpv 😄, kinda like ani-cli but without search functionalities and focused on radio stations.

If the station you want was not defined in the config, you will be able to search for it!

Configurability

As said before, this app is just a compilation of radios + a search prompt for online radios. It can be found in the config file as a JSON, with a list of station names and their URLs.

Of course you can add literally WHATEVER you want, even youtube videos (again, all thanks to mpv).

Otherwise, you can just use the online search functionality.

Fork me!

If you (wrongfully xD) think mpv is not the best player, go ahead, fork me and change it :)

The license is GPLv2

Planned features

Don't be surprised if these are not implemented in the end hehe (if there is no interest in the project, certainly not)

  • Audio (mpv) controls when not in verbose mode
  • Loop to selection list when pressing q while playing
  • Some kind of online updating of the list of stations (kind of)
  • Code optimizations/beautification
  • Search international online radios
  • Languages:
    • English
    • Spanish
    • Others(?)
  • An AUR installer

Honorable mentions