Roon Now Playing Extension
This repository contains a Now Playing extension for Roon that displays current track metadata, including cover art and lyrics. It integrates with the official roon-kit API and uses a Python script to fetch lyrics from the Musixmatch API
Contents
roon_extension.js
: Main Roon extension that listens to playback events and displays Now Playing information.get_lyrics.py
: Python script that fetches lyrics from Musixmatch based on artist and song title.
Requirements
Node.js (for roon_extension.js
)
- roon-kit
- Node.js 18+
Install dependencies:
npm install roon-kit
on Arch Linux:
yay -S roon-kit
Python (for get_lyrics.py
)
- Python 3.x
requests
library
Setup
API Key
This extension requires a Musixmatch API key to fetch lyrics. Save your API key to:
~/.apikeys/musixmatch
Make sure the file contains only your API key as plain text.
Run the extension
Start the Roon extension using Node.js:
node roon_extension.js
Make sure Python is in your PATH and executable from the same environment.
Features
- Displays Now Playing info using the Roon API.
- Automatically fetches lyrics from Musixmatch.
- Uses cover art from Roon and external metadata if available.
Waybar config
In modules add
"custom/roon",
then add the extension block
"custom/roon": {
"exec": "cat /tmp/waybar_roon_info.json",
"format": "{text}",
"tooltip": true,
"return-type": "json",
"signal": 3
},
License
MIT License
Description
Languages
JavaScript
77.5%
Python
22.5%