Skip to content

DD00031/NowPlayingRemote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Now Playing Remote

Control and view your music from any device on your network. Now Playing Remote is a lightweight macOS menu-bar app with a beautiful web player, real-time synced lyrics, and 10 gorgeous built-in themes.

✨ Features

  • 🎡 Real-time Media Control β€” play/pause, skip, seek, shuffle, repeat from any device
  • πŸ”„ Instant Updates β€” Server-Sent Events push changes immediately (no polling)
  • πŸ“± Mobile-Optimized Web Player β€” responsive design works on phones, tablets, and desktops
  • 🎨 10 Beautiful Built-in Themes β€” Clean, Immersive, Vinyl, Cassette, VHS, iPod, Bento, Starry Sky, Minimal, Poster
  • 🎀 Synced Lyrics β€” fetched from Music app (embedded) or LRCLIB online database
  • 🎨 Smart Artwork Display β€” album art with color-extracted gradient backgrounds
  • πŸ“² PWA Support β€” add to iPhone home screen for a native app experience
  • πŸ”— QR Code Quick Connect β€” instant access from the menu bar
  • 🎯 Custom Themes β€” create and import .theme archives with CSS, JavaScript, and custom assets
  • ⌨️ Full Keyboard Support β€” media keys control playback

Note: Lyrics from LRCLIB require an internet connection. Embedded Music app lyrics work offline.

Note: Custom .theme archives can execute JavaScript β€” only install themes from trusted sources.

🎧 Supported Apps

Direct Integration

  • Apple Music (Music app)
  • Spotify
  • Apple TV

Universal Media Control

Works with any app using macOS MediaRemote framework:

  • YouTube (Safari/Chrome/Firefox)
  • VLC Media Player
  • QuickTime Player
  • Podcasts
  • And many more!

πŸ“¦ Installation

System Requirements:

  • macOS 13 (Ventura) or later
  • Xcode 15+ (to build from source)
  • Devices must be on the same local network

Download the "NowPlayingRemote.dmg" file from the latest release. Open it and move the app into your Applications folder.

Important

Apple will flag this app as it is not signed by an registered developer, this doesn't mean the app is not safe. To use the app follow the steps below

  1. Click OK to close the popup.
  2. Open System Settings > Privacy & Security.
  3. Scroll down and click Open Anyway.
  4. Confirm your choice when prompted.

You only need to do this once.

Build from Source

  1. Clone the repository
  2. Open NowPlayingRemote.xcodeproj in Xcode
  3. Select your development team in Signing & Capabilities
  4. Build and run (⌘R)

The app appears in your menu bar as a note icon. Click it to open settings, show the QR code, or start the server.

Important

On first launch, macOS will request permissions:

  1. Accessibility β€” required for media key control
  2. Automation (Music) β€” to control the Music app
  3. Automation (Spotify) β€” to control Spotify

Grant all permissions for full functionality. The app will work immediately after.

βš™οΈ Setup

Basic Setup

  1. The server starts automatically on app launch (configurable in Settings)
  2. Default port is 8080
  3. Find your Mac's IP: System Preferences β†’ Network (or run ifconfig in Terminal)

Connect from Your Phone

  1. Click the Now Playing Remote icon in the menu bar
  2. Select Show QR Code and scan with your phone's camera
  3. Or manually navigate to http://<your-mac-ip>:8080
  4. (iOS/iPadOS) Share β†’ Add to Home Screen for a full-screen experience

Firewall Configuration

If your firewall is enabled and you can't connect:

  • System Preferences β†’ Security & Privacy β†’ Firewall β†’ Firewall Options
  • Add Now Playing Remote to the allowed apps list

πŸŽ›οΈ Settings & Customization

Server Settings

  • Port β€” HTTP listen port (default: 8080)
  • Auto-start server β€” launch on app startup (default: enabled)
  • Launch at login β€” start app on Mac login (default: disabled)

Player Settings

  • Show volume control β€” display volume slider in web player
  • Show like button β€” show like/favorite button (app-dependent)
  • Skip interval β€” how far forward/back jumps (default: 15 seconds)
  • Show lyrics β€” fetch and display synced lyrics
  • Auto-hide lyrics β€” hide panel when no lyrics found (default: enabled)

Appearance & Customization

  • Theme Selection β€” choose from 10 built-in themes
  • Custom Theme Import β€” import .theme archives
  • Custom HTML/JavaScript β€” serve your own web player

🎨 Themes

Built-in Themes

Theme Style Features
Clean (default) Modern Blurred background, full controls
Immersive Cinematic Full-screen art fill
Vinyl Retro Spinning record animation
Cassette Nostalgic Skeuomorphic cassette design
VHS 80s/90s Scanlines, glitch effects, phosphor green
iPod Classic Retro Click-wheel interface
Bento Modern Grid card layout
Starry Sky Ambient Shooting stars animation
Minimal Minimalist Text-only, ultra-clean
Poster Print-style Monochrome design

View screenshots of all themes β†’ Themes Gallery

Custom Themes

Create a .theme archive (renamed ZIP) with:

  • theme.json β€” metadata (name, author, version)
  • styles.css β€” custom CSS
  • script.js (optional) β€” custom JavaScript
  • assets/ (optional) β€” images, fonts, SVGs

See THEME_DEVELOPMENT.md for a complete guide.

πŸ“š Documentation

πŸ”Œ Custom Player

Replace the built-in player with your own HTML/JavaScript:

Settings β†’ Custom Player β†’ Import HTML/JS File…

Your custom player has access to:

  • Real-time state via SSE β€” automatic updates on playback changes
  • Full command API β€” send playback commands (play, pause, seek, etc.)
  • Artwork and lyrics β€” fetch album art and synced lyrics
  • Helper functions β€” cmd(), elapsed(), fmt(), loadArt(), getState()

See HTML-REFERENCE.md for the complete API and DEVELOPER_SETUP.md for architecture details.

πŸ“„ License

Now Playing Remote is available under the GPL-3.0 license. See LICENSE for details.

πŸ™ Acknowledgments

Built with assistance from:

  • Claude Haiku 4.5
  • Claude Sonnet 4.6
  • Gemini 3.1 Pro

Architecture and real-time features powered by:

⚠️ Disclaimer

This project is actively developed but provided as-is. While thoroughly tested, it may not receive immediate maintenance for every edge case. Issues and pull requests are welcome β€” please include your macOS version, app version, and steps to reproduce.


Made with ❀️ for music lovers

If you enjoy this app, consider starring the repo! ⭐

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages