An open API service indexing awesome lists of open source software.

https://github.com/nbolar/playstatus

macOS app that allows the control of Spotify and AppleMusic/iTunes music playback from the menu bar.
https://github.com/nbolar/playstatus

apple-music itunes itunes-playback macos menubar music playstatus sparkle sparkle-upgrade-tool spotify swift4

Last synced: 24 days ago
JSON representation

macOS app that allows the control of Spotify and AppleMusic/iTunes music playback from the menu bar.

Awesome Lists containing this project

README

          

#![playstatus_header](https://user-images.githubusercontent.com/45484873/56880861-09cb3980-6a67-11e9-9d45-037a9165b212.png)

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Version: 2.8](https://img.shields.io/badge/Version-3.0-green.svg)](https://github.com/nbolar/PlayStatus/releases)
[![Platform](http://img.shields.io/badge/platform-macOS-black.svg?style=flat)](https://developer.apple.com/resources/)
[![Platform](https://img.shields.io/badge/swiftUI-blue.svg?style=flat)](https://developer.apple.com/swiftui/)
[![Open Source Love svg1](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/nbolar/playstatus/)
[![GitHub All Releases](https://img.shields.io/github/downloads/nbolar/playstatus/total)](https://github.com/nbolar/PlayStatus/releases/latest/)

PlayStatus is a native SwiftUI macOS menu bar app for controlling Apple Music and Spotify without living in a full desktop window all day. The current generation of the app is a full SwiftUI relaunch with a richer now-playing surface, better onboarding, customizable display themes, provider-aware search, lyrics and credits, a detached floating player, and a cleaner settings flow.

## Why this version feels different

- The old AppKit utility-style player has been replaced with a layered SwiftUI player that supports regular, mini, and detached modes.
- New users get a guided walkthrough, and existing users can replay the full tour or the shorter "What's New" tour at any time.
- Lyrics, credits, and provider-aware search now live inside the main player instead of feeling like separate utility flows.
- Display tuning is much deeper: menu bar text modes, detached window sizing, theme presets, animated artwork, artwork motion styles, and progress-strip options all live in Settings.
- The app is more efficient when closed: media caches, onboarding previews, and heavy Settings surfaces can unload when they are not visible.

## What the app looks like now

### Regular player

Image

#### Lyric View
Image

### Mini player

Image

#### Lyric View
Image

### Supports Animated Album Stream (if supported/exists)
https://github.com/user-attachments/assets/e12a56e8-de6e-460d-b323-5db9d491533c

### Settings

Image

## First launch

1. Download the latest [release](https://github.com/nbolar/PlayStatus/releases/latest/) and move PlayStatus to `/Applications`.
2. Launch the app and choose which providers PlayStatus should listen to: Apple Music, Spotify, or both.
3. When macOS asks for Automation permission, allow PlayStatus to control Music and/or Spotify.
4. If no prompt appears, retry once and then check `System Settings -> Privacy & Security -> Automation`.
5. Use the walkthrough to set your preferred provider, display mode, theme, animated artwork, and launch-at-login behavior before closing the window.

## How people use PlayStatus day to day

### 1. Open the player from the menu bar

- Click the menu bar item to open the main player.
- Choose a menu bar display style in `Settings -> Display`: `Artist`, `Song`, `Artist + Song`, or `Icon Only`.
- Long titles can scroll, and title transitions can animate when tracks change.

### 2. Pick the right player surface

- `Regular mode` is the full player with artwork, inline search, progress, transport controls, lyrics, and credits.
- `Mini mode` is a calmer, more compact surface with quick controls and optional mini lyrics/credits.
- `Detached mode` turns the player into a floating standalone window. You can keep it always on top and choose `Small`, `Medium`, or `Large`.

### 3. Control playback quickly

- Use the transport controls for previous, play/pause, and next.
- Click the track title to jump straight into the source app.
- If Apple Music is the active source, you can favorite the current track from the player.
- The playback progress bar is seekable, and the menu bar can show a separate progress strip.

### 4. Use lyrics, credits, and search where they matter

- `Lyrics` and `Credits` open from the player instead of in separate utility views.
- Lyrics can come from Apple Music or LRCLIB depending on availability.
- Search is provider-aware:
- Spotify opens the matching Spotify search.
- Apple Music searches your Music library and can play a matching result.
- The mini player has its own quick lyrics and credits toggles.

### 5. Personalize the visual feel

- Theme presets: `Artwork Adaptive`, `Frosted`, `Midnight`, `Warm Studio`, `High Contrast`, `Graphite`.
- Animated artwork can use static motion, and supported tracks can use animated editorial streams.
- Artwork motion styles: `Parallax by Pointer`, `Vinyl Spin`, `Film Grain Drift`.
- Non-adaptive themes let you blend album colors back into the surface.

## Settings guide

### Display

- Menu bar text mode
- Parenthetical-title cleanup
- Scrollable titles
- Slide animation on track change
- Detached window always-on-top
- Detached window size preset
- Title width
- Artwork color intensity
- Theme selection
- Album color blend
- Animated artwork and animated artwork streams
- Animated stream quality and preview
- Artwork motion style preview

### Playback

- Preferred provider: `Auto`, `Music`, or `Spotify`
- Automatic provider priority when the preferred app is idle
- Enable or disable Apple Music and Spotify independently
- Expand the details pane automatically for new tracks

### Hotkeys

Global shortcuts are configurable in `Settings -> Hotkeys`. Default bindings are:

| Action | Default |
| --- | --- |
| Play/Pause | `Ctrl+Opt+Cmd+P` |
| Next Track | `Ctrl+Opt+Cmd+N` |
| Previous Track | `Ctrl+Opt+Cmd+B` |
| Toggle Popover | `Ctrl+Opt+Cmd+O` |
| Toggle Favorite | `Ctrl+Opt+Cmd+L` |
| Toggle Detached Mode | `Ctrl+Opt+Cmd+D` |

### System

- Replay the full walkthrough
- Open the shorter `What's New` tour
- Temporarily re-arm `Debug Coachmarks` for QA or troubleshooting
- Launch at login
- Check for updates through Sparkle
- Clear the local media cache
- Reduce hidden memory usage when all surfaces are closed

### License

- MIT license text
- LRCLIB attribution and disclaimer for third-party lyrics

## Walkthrough and onboarding

The new SwiftUI version includes a dedicated walkthrough window for both first-run setup and returning-user upgrades.

- `Show Walkthrough` is also available from the app menu with `Cmd+Shift+/`.
- The full walkthrough helps with provider setup, Automation permissions, personalization, and hotkeys.
- The shorter `What's New` flow highlights the redesigned player, integrated lyrics/search, and the reorganized Settings experience.
- Contextual coachmarks can teach the search button, mode toggle, detached mode, detail toggles, and Settings navigation.

## Privacy, network use, and caching

- PlayStatus uses AppleScript to control Apple Music and Spotify, so macOS Automation permission is required.
- Lyrics may be fetched from LRCLIB, and artwork or animated artwork lookups may use public Apple/iTunes endpoints when needed.
- The media cache stores lyrics and artwork locally on your Mac and caps itself at 50 MB.
- Lyrics are third-party content and may be incomplete or unavailable.

## Compatibility

- Minimum supported macOS version: `15.0`
- Supported providers: `Apple Music`, `Spotify`
- Update flow: Sparkle-based in-app update checks remain supported
- License: `MIT`