macOS menubar app to play user-defined radio stations with help from rumps and VLC. It includes a remote
to switch channels, on/off, pause/resume etc. Forked from RadioBar by David May
Make sure you have vlc
installed, e.g. using brew cask install vlc
. Also, if you don't have Python installed, install it with brew install python3
. Use the master
repo of rumps to use the sleep()
and wake()
events (see PR #109)
channels.json
to your needs.app
using python setup.py py2app
(see Development).app
from the dist/
directoryCurrently no packaged .app
is distributed because I've not yet been able to include an easy way to change / update channels. Suggestions for an easy / simple mechanism are welcome!
-
is shown in front)Check radiobar.py
source code to set options to show notifications or show nowplaying in the menubar.
Pause / resume stops streaming (but shows the channel as paused). It's not buffering radio (which didn't seem logical for live radio). You can also use the remote.py
to automate switching channels, see below.
When macOS sleeps streaming will be stopped and you have to manually resume it (this is a feature). This only works if you're using the latest version of rumps
(see PR #109).
Use the include remote.py
to send commands to a running RadioBar instance to change channels and switch on/off. You can also use the command as part of an Alfred workflow. remote.py
understands the following commands:
n
- switch to channel n in your list (starting at 1) - start playing if stoppedoff
- stop playing raudiopause
- pause playing radio (don't switch station, but stop streaming)resume
| on
- resume playing radio (start streaming again)nowplaying
- output the now playing info show
- output the now playing info and trigger a notificationMake sure you have VLC installed, ie. brew cask install vlc
.
Tested in Python 2.7.x and 3.x. To run, try:
pip install -r requirements.txt
python radiobar.py
To re-build the macOS app, run:
rm -rf ./dist/ ./build/
python setup.py py2app
You can also use the supplied Makefile
to use make clean
, make build
(default) and make install
(to copy the new .app to /Applications
)
"Now playing" integration is experimental and might not work as expected
Sleep / wake only works when using a patched version of . This is now merged in rumps
until PR #109 gets merged.rumps
master
.
parse_with_options
might not not be needing the second argument (timeout
) in your version. You could remove it (not sure yet if it makes any difference). I'm still trying to implement a hook that watches for metadata changes for now playing. Tips welcome :-)
To use it with the current VLC (>= 3.x) we need to preload the libvlccore.dylib
as a workaround. See
https://github.com/oaubert/python-vlc/issues/37 for more info.
This is a fork of RadioBar built by wass3r (David May). All credits for the intial concept go to him!
MIT