An embeddable ListenBrainz widget
  • Go 74.5%
  • JavaScript 11.3%
  • CSS 6.1%
  • Nix 5.9%
  • HTML 2.2%
Find a file
2026-05-23 04:30:27 +02:00
cmd/muffled init 2026-05-23 04:30:27 +02:00
internal init 2026-05-23 04:30:27 +02:00
.air.toml init 2026-05-23 04:30:27 +02:00
.gitignore init 2026-05-23 04:30:27 +02:00
flake.lock init 2026-05-23 04:30:27 +02:00
flake.nix init 2026-05-23 04:30:27 +02:00
go.mod init 2026-05-23 04:30:27 +02:00
go.sum init 2026-05-23 04:30:27 +02:00
LICENSE init 2026-05-23 04:30:27 +02:00
package.nix init 2026-05-23 04:30:27 +02:00
README.md init 2026-05-23 04:30:27 +02:00
screenshot.png init 2026-05-23 04:30:27 +02:00
treefmt.toml init 2026-05-23 04:30:27 +02:00

Muffled

Muffled is a simple service that gets the music you're listening to from ListenBrainz and exposes the status of what is currently playing via Server Sent Events as well as an <iframe> that you can embed on your website, which looks like this by default:

Screenshot

Note that SSE works best when HTTP/2 or newer is being used.

ListenBrainz itself connects to various services, such as Spotify, Apple Music, Last.FM, or your own Navidrome instance. If you're logged in, see ListenBrainz third-party music services.

Configuration

Example muffled.toml:

user = "your_username"
address = "localhost:8080"
log_level = "info"
interval = 120 # Don't set this too low if you're using the default instance
listenbrainz_base_url = "https://api.listenbrainz.org/1"
widget_path = "/path/to/widget.html" # If you want to use custom HTML, CSS, and JS