/nowplaying-cli

macOS command-line utility for retrieving currently playing media

Primary LanguageObjective-C++GNU General Public License v3.0GPL-3.0

nowplaying-cli

nowplaying-cli is a macOS command-line utility for retrieving currently playing media, and simulating media actions.

Use nowplaying-cli to get song information and play/pause your media through an easy to use CLI!

Disclaimer: nowplaying-cli uses private frameworks, which may cause it to break with future macOS software updates.

Tested and working on:

  • Ventura 13.1, 13.2, 13.3, 13.6
  • Sonoma 14.4

Installation

Homebrew

You can install nowplaying-cli using Homebrew.

brew install nowplaying-cli

Build from source

Clone the repository and run make to build the binary. You can then move the binary to your desired location.

make
mv nowplaying-cli ~/.local/bin

Usage

nowplaying-cli <cmd>

command description
get [propName1 propName2 ... ] get now playing media properties
get-raw get all non-nil now playing media properties in dictionary format
play play the currently playing media regardless of current state
pause pause the currently playing media regardless of current state
togglePlayPause toggle play/pause based on current state
seek seek to a specific time in the currently playing media
next skip to next track
previous go to previous track

Examples

screenshot of examples in terminal

Available properties

native nowplaying-cli
kMRMediaRemoteNowPlayingInfoTotalDiscCount totalDiscCount
kMRMediaRemoteNowPlayingInfoShuffleMode shuffleMode
kMRMediaRemoteNowPlayingInfoTrackNumber trackNumber
kMRMediaRemoteNowPlayingInfoDuration duration
kMRMediaRemoteNowPlayingInfoRepeatMode repeatMode
kMRMediaRemoteNowPlayingInfoTitle title
kMRMediaRemoteNowPlayingInfoPlaybackRate playbackRate
kMRMediaRemoteNowPlayingInfoArtworkData artworkData
kMRMediaRemoteNowPlayingInfoArtworkDataWidth artworkDataWidth
kMRMediaRemoteNowPlayingInfoArtworkDataHeight artworkDataHeight
kMRMediaRemoteNowPlayingInfoAlbum album
kMRMediaRemoteNowPlayingInfoTotalQueueCount totalQueueCount
kMRMediaRemoteNowPlayingInfoArtworkMIMEType artworkMIMEType
kMRMediaRemoteNowPlayingInfoMediaType mediaType
kMRMediaRemoteNowPlayingInfoDiscNumber discNumber
kMRMediaRemoteNowPlayingInfoTimestamp timestamp
kMRMediaRemoteNowPlayingInfoGenre genre
kMRMediaRemoteNowPlayingInfoQueueIndex queueIndex
kMRMediaRemoteNowPlayingInfoArtist artist
kMRMediaRemoteNowPlayingInfoDefaultPlaybackRate defaultPlaybackRate
kMRMediaRemoteNowPlayingInfoElapsedTime elapsedTime
kMRMediaRemoteNowPlayingInfoTotalTrackCount totalTrackCount
kMRMediaRemoteNowPlayingInfoIsMusicApp isMusicApp
kMRMediaRemoteNowPlayingInfoUniqueIdentifier uniqueIdentifier