Skip to content

Repository files navigation

Terminal Player

This project is no longer maintained. You might be interested in https://github.com/devshane/somadic.

Terminal player is a bare-bones, terminal-based player for DI.fm and somafm.com. It's a thin wrapper around mplayer and it outputs a single line of text for each song without using Curses. That's it. A two-line terminal is plenty of room:

16:28:34 [di/lounge] The Sura Quintet - Kept In Perspective
16:29:46 [di/lounge] Michel Petit - Voyage A Tipaza

Pull requests are encouraged.

Installation

$ gem install terminal_player

Or from source:

$ git clone https://github.com/devshane/terminal-player.git
$ cd terminal-player
$ gem build ./terminal_player.gemspec
$ gem install ./terminal_player-0.0.4.gem

Usage

Usage: terminal_player.rb [options] site channel
The `site` parameter can be di or soma.
When `site` is di or soma, the channel parameter should be a valid channel.
DI premium channels require an environment variable: DI_FM_PREMIUM_ID.
-c, --cache CACHE_SIZE Set the cache size (KB)
-m, --cache-min CACHE_MIN Set the minimum cache threshold (percent)
-h, --help Display this message
--play-history-path PATH Log the play history to PATH

Examples:

# DI premium member, breaks channel
$ set -x DI_FM_PREMIUM_ID abc123; terminal_player di breaks
# DI public breaks channel
$ terminal_player di breaks
# Soma Secret Agent
$ terminal_player soma secretagent130
# Soma Groove Salad, log the song history to the desktop in a folder called played_songs
$ terminal_player --play-history-path ~/Desktop/played_songs soma groovesalad

Channel lists

For DI and Soma, terminal player can dump a list of channels and then exit if you use channels as the channel argument:

$ terminal_player di channels
ambient drumandbass minimal
bigroomhouse dubstep moombahton
breaks eclectronica oldschoolacid
chillhop electro progressive
chillout electronicpioneers progressivepsy
chilloutdreams epictrance psychill
chillstep eurodance russianclubhits
chiptunes funkyhouse sankeys
classiceurodance futuresynthpop scousehouse
classiceurodisco gabber soulfulhouse
classictechno glitchhop spacemusic
classictrance goapsy techhouse
classicvocaltrance handsup techno
club hardcore trance
clubdubstep harddance trap
cosmicdowntempo hardstyle tribalhouse
darkdnb hardtechno ukgarage
deephouse house umfradio
deepnudisco latinhouse vocalchillout
deeptech liquiddnb vocallounge
discohouse liquiddubstep vocaltrance
djmixes lounge
downtempolounge mainstage
$

Keybinds

c - Display a channel list
r - Refresh display
S - Launch a Google search for the track/artist name
9 - Lower volume
0 - Raise volume
<space> - Pause

Play logs

They're rotated daily. They're formatted like the display is:

22:34:19 [soma/secretagent130] Akasha - Mescalin
22:36:14 [soma/secretagent130] Sunday Combo - Ball Chair
22:39:14 [soma/secretagent130] Daniele Luppi - The Lost Island (Lp Version)

About

This project is no longer maintained. You might be interested in https://github.com/devshane/somadic.

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages