somafm

Play and record SomaFM radio channels

Usage no npm install needed!

<script type="module">
  import somafm from 'https://cdn.skypack.dev/somafm';
</script>

README

SomaFM Build Status

Play & record SomaFM radio channels

Features

Install

With yarn:

$ yarn global add somafm

or with npm:

$ npm install --global somafm

Playing a channel requires MPlayer or mpv on your system. Please make sure you have at least one of them installed and the mplayer or mpv command can be run within your shell.

To record a channel, you need Streamripper and its executable streamripper.

Usage

Commands

$ somafm

Interactive mode. Choose a channel to play from the list.

$ somafm list [<keywords>]

Show a list of all SomaFM channels. You can filter by one or more keywords.

$ somafm play <channel> | random

Play a channel. To specify a channel, use the ID from the channel list (lower-case, no spaces), e.g. beatblender. Use random to play any channel.

$ somafm info <channel>

Get channel information.

$ somafm record <channel>

Record a channel. Tracks are saved into a directory containing channel name, date and time, e.g. SomaFM Groove Salad/20171011_213324. It is automatically created in the current working directory.

$ somafm list-favourites [<keywords>]

List your favourite songs. You can filter by one or more keywords in song title and channel name.

$ somafm edit-favourites

Edit your favourites songs file.

Command aliases

All commands have short aliases for faster typing.

Command Alias
list ls
play p
info i
record r
list-favourites lf
edit-favourites ef

Options

-n

Don't show desktop notifications.

Keyboard shortcuts

While playing, the following keyboard shortcuts are available:

Description Key
Copy current song title to clipboard c
Add current song to favourites + or f
Remove current song from favourites - or u
Increase volume* * or 0
Decrease volume* / or 9
Mute/unmute* m
Enable desktop notifications d
Disable desktop notifications n
Stop playback & quit application q or esc

* MPlayer only

License

MIT © Christoph Uschkrat