All Projects → MS3FGX → SomaFM

MS3FGX / SomaFM

Licence: GPL-3.0 license
A simple Python 3.x terminal interface for streaming SomaFM

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to SomaFM

somafm
📻 A SomaFM Desktop Player
Stars: ✭ 20 (-25.93%)
Mutual labels:  somafm, player
clappr-core
Core components of the Clappr player architecture
Stars: ✭ 41 (+51.85%)
Mutual labels:  player, streaming-audio
Fanplayer
A portable video player based on ffmpeg for windows and android platform.
Stars: ✭ 229 (+748.15%)
Mutual labels:  player
hurley
🎧 The Podcast Web Interface
Stars: ✭ 12 (-55.56%)
Mutual labels:  player
Thinking In Av
音视频开发知识库
Stars: ✭ 224 (+729.63%)
Mutual labels:  player
Swift Radio Pro
Professional Radio Station App for iOS!
Stars: ✭ 2,644 (+9692.59%)
Mutual labels:  player
dart vlc
🎞 Flutter audio / video playback, broadcast & recording library for Windows & Linux.
Stars: ✭ 439 (+1525.93%)
Mutual labels:  chromecast
minimal-player
This is a minimal, clean audio/music/mp3 player with spinning cover images, built with jQuery, TweenMax.js and SVG images.
Stars: ✭ 48 (+77.78%)
Mutual labels:  player
casttube
YouTube Chromecast API
Stars: ✭ 51 (+88.89%)
Mutual labels:  chromecast
Eplayer
🔮 A web-component html5 video player facing future
Stars: ✭ 253 (+837.04%)
Mutual labels:  player
Mojs Player
GUI player to control your animations
Stars: ✭ 243 (+800%)
Mutual labels:  player
Ytermplayer
Stream youtube playlists as audio on linux terminal
Stars: ✭ 235 (+770.37%)
Mutual labels:  player
enrich
Enrich adds few missing features to the wonderful rich library.
Stars: ✭ 20 (-25.93%)
Mutual labels:  terminal-colors
Aos Avp
NOVA opeN sOurce Video plAyer: main repository to build them all
Stars: ✭ 229 (+748.15%)
Mutual labels:  player
iheart-mplayer
Automatically open an iheartradio station in a media player, such as mplayer, VLC, or mpv
Stars: ✭ 44 (+62.96%)
Mutual labels:  streaming-audio
Imusic
一个集视频播放器、音乐播放器封装库于一身的iMusic工程
Stars: ✭ 228 (+744.44%)
Mutual labels:  player
Pathephone Desktop
Distributed audio player
Stars: ✭ 240 (+788.89%)
Mutual labels:  player
cacophony
Cacophony HTML5 Interactive Video Player
Stars: ✭ 41 (+51.85%)
Mutual labels:  player
Trickl
trickl torrent client
Stars: ✭ 50 (+85.19%)
Mutual labels:  chromecast
bliss-zsh
A delicate Zsh theme that injects color without overwhelming your workspace
Stars: ✭ 20 (-25.93%)
Mutual labels:  terminal-colors

feat_img

Python SomaFM Player

This simple player for SomaFM keeps the distractions, and system resource utilization, to an absolute minimum. The look of this player was inspired equally by the excellent SomaFM terminal interfaces which were already available, and the 90's hacker aesthetic that I seem to find myself nostalgic for when listening to a Shoutcast stream at 2AM.

As of the current version, the player supports completely unnecessary features like desktop notifications and Chromecast support at no extra charge. Known to work on Linux (including Raspberry Pi and Chrome OS's Crostini), Mac OS, and even Windows.

For an up-to-date list of what's new, check the Changelog

Installation

Starting with version 1.5, the stable version of this program is available on PyPi and can be installed with the following command:

pip3 install somafm

If you'd like to keep up with the latest version, just clone this repository to your system and run the script.

Dependencies

At minimum, this program requires Python 3 versions of the following libraries:

Usage

Simply running somafm with no options will start streaming "Groove Salad." In the somewhat unlikely event you wanted to listen to something else, simply give it the channel name like so:

somafm "DEF CON Radio"

Channel entry is not case sensitive and uses a certain amount of "fuzzy" matching. So rather than typing out the entire name, the following will also work:

somafm def

In addition, the following options are available:

--list

Download the latest master list of SomaFM channels and display their descriptions.

channel_img

--stats

This option shows the number of listeners for each currently online SomaFM channel, along with a total listener count.

--cast

If you have the pychromecast library installed, this option will start playback of the given SomaFM channel on the given Chromecast device. If no device name is given, the default specified by the chromecast_name variable will be used.

Supported Players

This program is simply a front-end, playback requires one of these media players to be installed:

  • MPlayer (Best choice)
  • mpg123 (Lightweight, but lacks AAC support)
  • mpv (Slow to start stream, minimal functionality)

Desktop Notifications

There is currently experimental support for desktop notifications on Linux using libnotify. They can be enabled by changing the value of the boolean variable desktop_notifications or turned on temporarily with the -n option.

notifications

Future Development

While the script is already at a point where I would consider it feature complete, there are a few things I think might be interesting to look into:

  • Random channel selection
  • Display keyboard controls during playback
  • Support other players (mpv/VLC)
  • Filter station IDs from track listing
  • Desktop notifications on new track

If you have an idea for a feature you'd like to see, let me know.

About SomaFM

somabanner

SomaFM is a listener-supported Internet-only radio station. That means no advertising or annoying commercial interruptions. SomaFM's mission is to search for and expose great new music which people may otherwise never encounter.

If you like what you hear on SomaFM and want to help, please consider visiting their site and making a donation.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For details, see the file "COPYING" in the source directory.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].