Coder Social home page Coder Social logo

goradion's Introduction

goradion

Goradion is a command line radio player based on mpv. Goradion is inspired by pyradio and supports it's stations playlists.

goradion

Setup

  1. Prerequisites: mpv

    • Mac

      • brew install mpv
    • Ubuntu

      • apt install mpv
    • Arch Linux

      • pacman -S mpv
    • Windows

      • Download: mpv
      • Unpack e.g. into c:\mpv
      • Add this dir to the PATH, either via GUI or: setx /M PATH "%PATH%;c:\mpv"
    • Other OSes

  2. Download goradion

  3. Mark it as executable (not needed on Windows):

chmod +x goradion-<version>

Warning: On some Windows machines, a virus scanner identifies the binary as infected (https://go.dev/doc/faq#virus), in this case it's best to build the binary yourself: go build ..

Run

On Windows just double click the downloaded exe (or run via cmd to use flags), on other OSes:

# Starts with preset radio stations
goradion-<version>

Stations

The stations are configured using a CSV file with a titile, URL and optional, semicolon ; separated tag(s), e.g.:

Title,URL[,tag_1;...;tag_n]
...

Stations file can be passed with -s argument; goradion supports both local files and HTTP URLs, e.g.:

goradion -s /path/to/stations.csv

OR

goradion -s https://path-to/stations.csv

Keyboard Control

Keyboard Control

  *
    Toggle playing a random station.

  /
    Show tag selection screen.

  #
    Clear selected tag.

  a-z and A-Z
    Toggle playing a station marked with a given letter.

  Enter and Space
    Toggle playing currently selected station.

  Left and Right, - and +
    Change the volume in increments of 5.

  Up and Down
    Cycle through the radio station list.

  PgUp and PgDown
    Jump to a beginning/end of a station list.

  Esc
    Close current window.

  ?
    Show help screen.

goradion's People

Contributors

agejevasv avatar

Stargazers

Lucas avatar Ev Dolzhenko avatar  avatar Nikolay Astakhayev avatar Chris Marshall avatar hirak0 avatar  avatar  avatar Nikolai Sinyov avatar  avatar  avatar umko avatar GhostMan avatar Kostya Vakarian avatar SampleSpace avatar Yaroslav avatar  avatar  avatar saopin avatar  avatar Luiz Weitz avatar  avatar Nicolas avatar SivaPraveenR avatar Feng avatar  avatar  avatar  avatar  avatar Victor Carriço Santos avatar Michael S. Manley avatar  avatar  avatar cbluth avatar Andrew Prentice avatar toby lorne avatar Gintaras Sakalauskas avatar Vytautas Galaunia avatar Shashank Priyadarshi avatar Barend van der Walt avatar Eugene Dobrodeev avatar Vincent Villaluna avatar ClamP avatar Jarrod Oxical avatar  avatar Daniel Durante avatar Michael Demarais avatar Craig Mulligan avatar Viet Phan avatar Chris Hart avatar David Wooldridge avatar  avatar Alex Kup avatar Siarhei avatar  avatar Nikolay Kolev avatar Kalashnikov-HK4JGG avatar Lukas Moeller avatar Walter Ferreira avatar Daniel Blendea avatar  avatar Aayushman Choudhary avatar Thiago Sanches avatar Youssef avatar Noskill avatar oybek avatar There Is No TIme avatar NiktoX2 avatar IemandDood avatar Robertas avatar

Watchers

Ev Dolzhenko avatar  avatar  avatar

Forkers

s1591

goradion's Issues

Google Chrome virus has been detected

When downloading from releases on Windows, Google Chrome gives an error with a message that a virus has been detected in the file. What is it? What could it be cussing at in this context?

image

[REQ] Roadmap

Could you jot down the sorts of things you're interested in doing? IME, I've too often submitted patches for features that upstream is not interested in, which results in me having to maintain forks for just the stuff I want indefinitely. It's good to have an idea about whether upstream is willing to accept new features. I could ask about each one before working on it, but even better is knowing where you see the project going.

In particular, I'd like:

  • Tags/categories. I see this as another column in the CSV, a space or semicolon separated list of categories. There would also be UI changes for grouping stations by categories, or filtering by category. I'm often in the mood for a kind of music, and being able to filter on tags and show only stations playing those kinds of music is really helpful. Like Genres, but less constrained.
  • mpris support. This greatly facilitates integrating a music player in dozens of control/display tools: status bar controllers; dunst messaging, and controling with physical devices like knobs.

I think that's all I'm missing from goradion for now, but it's an example. Some require a fair bit of effort, so it'd be nice to know whether you're amenable to accepting large-ish patches to add support (tags are probably minor; mpris tends to be heavier)

AUR packages

I created two AUR packages for goradion so Arch Linux users can install it with their preferred AUR helper. You're welcome to link to them in the README if you'd like :)

Maybe also the bitrate information?

Would be great to have some bitrate info alongside the volume, what do you think? But mpv doesn't seem to handle the icy-bitrate tag, so that's probably not exactly easy?

The other way could be adding something like --term-status-msg='Bitrate: ${audio-bitrate}' to the mpv call, and parsing it, but, again, probably too much fuss?

Thanks for goradion anyway! Really nice and handy little gem :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.