Skip to content

gwgr/RadioMenuBar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RadioMenuBar

Minimal macOS menu bar app for live radio streams, with a custom app icon and editable station list.

Screenshot

Build App

From the repository root:

./scripts/build-app.sh

This creates:

dist/RadioMenuBar.app

Double-click dist/RadioMenuBar.app to start it. The app installs as RadioMenuBar.app, presents to Siri and Shortcuts as "Radio", and runs as a menu bar item without keeping a Dock icon visible.

The build script signs the app with the first available Apple Development: code-signing identity so Siri and Shortcuts can communicate with the App Intents host. Set CODESIGN_IDENTITY to choose a specific identity:

CODESIGN_IDENTITY="Apple Development: Your Name (TEAMID)" ./scripts/build-app.sh

If no Apple Development identity is available, the script falls back to ad-hoc signing. Ad-hoc builds may appear in Shortcuts but fail at runtime with "Shortcuts couldn't communicate with the app."

Run From Source

cd RadioMenuBar
swift run

You can also run it from this nested package directory with cd app && swift run.

The built app copies its editable station config to:

~/Library/Application Support/RadioMenuBar/stations.json

When running from source, it also falls back to stations.json in the current working directory or app/stations.json when launched from the repository root.

Stations can include optional aliases for Siri and Shortcuts matching:

{
  "name": "The Fox Melbourne",
  "aliases": ["Fox FM", "Fox", "Fox Melbourne"],
  "url": "https://example.com/stream.m3u8"
}

Features

  • Menu bar station picker
  • Play, stop, and active-station indicator
  • Optional station-name display in the menu bar
  • Persisted last selected station
  • Persisted volume control
  • Loading, playing, stopped, and failed states
  • macOS Now Playing metadata
  • Media play/pause/stop command support
  • Siri and Shortcuts actions for start, stop, resume, and station tuning
  • Reloadable stations.json
  • Menu item to open the station config
  • Visible config load warnings in the menu
  • Keyboard shortcuts for stations 1-9, reload, config, and quit
  • Launch at Login toggle in the built app

Default Stations

The bundled app/stations.json currently includes:

  • ABC NewsRadio
  • Gold 104.3
  • The Fox Melbourne
  • Triple M Melbourne 105.1
  • triple j
  • Triple R 102.7FM

Siri and Shortcuts

The built app exposes App Intents for Siri and Shortcuts:

  • "Start Radio"
  • "Stop Radio"
  • "Resume Radio"
  • "Tune Radio to Fox"

Station selection uses the same stations.json config as the menu bar picker. Aliases in stations.json are also matched, so a station displayed as "The Fox Melbourne" can respond to "Fox FM" or "Foxy FM". The Siri phrase set is intentionally small while testing Apple Music routing. Phrases with "play", "listen to", or broad station-language variants can be interpreted by Siri as Apple Music or Podcasts requests before they reach the app.

Notes

  • Requires macOS 13 or newer for MenuBarExtra.
  • Keep stations.json URLs pointed at stable stream URLs.
  • Do not save generated listeningSessionID child playlist URLs from LISTNR streams.
  • Station config warnings appear in the menu when a config cannot be loaded.
  • Launch at Login uses macOS ServiceManagement in the built app.

Disclaimer

RadioMenuBar is an independent app and is not affiliated with the broadcasters included in the sample station list. Stream URLs belong to their respective broadcasters and may change without notice. Users are responsible for configuring and using valid public stream URLs.

About

OSX menubar app to stream radio station urls

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors