Skip to content

waxim/audiobully

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

audiobully

Jukebox client for NSM Music and TouchTunes — TUI and headless CLI.

Install

bun install

TUI Mode

Launch the interactive terminal UI:

bun run dev
# or
bun src/index.tsx

On launch you'll be asked to pick a platform (NSM or TouchTunes). Press p from the home screen to switch between them at any time. Both sessions stay alive — you can be logged into NSM and TouchTunes simultaneously.

Keyboard shortcuts

Key Context Action
15 Home Jump to menu item
p Home Switch platform
q / Esc Home Quit
j/k or arrows Lists Navigate
Enter Lists Select / confirm
Tab Search Toggle artists/songs tab
p Search (songs) Play song
n Search (songs) Play Next (bump)
m Artist detail Load more songs
a Locations Add location
d Locations Delete location

CLI Mode

Pass any command to get JSON output without launching the TUI:

bun src/index.tsx <command> [options]

Saved Locations (shared)

Saved locations are shared between NSM and TouchTunes — they're just lat/lng coordinates used to find nearby venues on either platform.

# List saved locations
audiobully locations

# Add a location
audiobully location-add "My Bar" 51.5 -0.1

# Set active location
audiobully location-activate 0

# Remove a location
audiobully location-delete 1

NSM Commands

Auth

# Log in (--save persists credentials for auto-login)
audiobully login --email user@example.com --password secret --save

# Show current user
audiobully whoami

# Session & checkin status
audiobully status

# Log out
audiobully logout

Venues

# Find nearby venues
audiobully venues --lat 51.5 --lng -0.1

# Get venue details (devices, prices)
audiobully venue 12345

# Check in to a venue (auto-selects first interactive device)
audiobully checkin 12345

# Check in to a specific device
audiobully checkin 12345 --device 67890

# Check out
audiobully checkout

Music

# Search songs & artists
audiobully search "blue october"
audiobully search "blue october" --page 2

# Browse an artist's songs
audiobully artist 42 --page 1

# Queue a song
audiobully play 99999

# Queue with priority (bump)
audiobully play 99999 --bump

# What's playing now
audiobully now-playing

Playlists

# List playlists
audiobully playlists

# Get playlist details
audiobully playlist 5 --page 1

# Create a playlist
audiobully playlist-create "Friday Night"

# Add a song to a playlist
audiobully playlist-add 5 99999

# Delete a playlist
audiobully playlist-delete 5

TouchTunes Commands

All TouchTunes commands are prefixed with tt-.

Auth

# Log in (--save persists credentials for auto-login)
audiobully tt-login --email user@example.com --password secret --save

# Session & checkin status
audiobully tt-status

# Log out
audiobully tt-logout

Venues

# Find nearby venues
audiobully tt-venues --lat 51.5 --lng -0.1

# Get venue details (device ID, availability)
audiobully tt-venue 887302

# Check in to a venue
audiobully tt-checkin 887302

Music

# Search songs & artists
audiobully tt-search "oasis"
audiobully tt-search "oasis" --limit 10 --offset 20

# Browse an artist's songs
audiobully tt-artist 1322 --limit 25

# Queue a song
audiobully tt-play 70075418

# Queue as Play Next (costs extra credits, skips ahead in the queue)
audiobully tt-play 70075418 --next

Config

# Show config (passwords redacted)
audiobully config

Output Contract

  • Success: JSON to stdout, exit code 0
  • Error: {"error": "..."} to stderr, exit code 1

Parse output with jq:

audiobully search "test" | jq '.songs[].songTitle'
audiobully tt-search "test" | jq '.songs[].songTitle'

About

AudioBully is a tui/cli for controlling NSM Jukeboxes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors