{"id":13522359,"url":"https://github.com/foxxmd/multi-scrobbler","last_synced_at":"2026-04-02T20:09:45.728Z","repository":{"id":37898176,"uuid":"311688903","full_name":"FoxxMD/multi-scrobbler","owner":"FoxxMD","description":"Scrobble plays from multiple sources to multiple clients","archived":false,"fork":false,"pushed_at":"2026-03-26T12:58:31.000Z","size":34870,"stargazers_count":976,"open_issues_count":38,"forks_count":35,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-27T00:26:45.114Z","etag":null,"topics":["deezer","docker","jellyfin","kodi","lastfm","listenbrainz","maloja","mopidy","mpris","music","plex","scrobble","self-hosted","spotify","subsonic","tautulli","youtube-music"],"latest_commit_sha":null,"homepage":"https://foxxmd.github.io/multi-scrobbler","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FoxxMD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-11-10T14:45:38.000Z","updated_at":"2026-03-26T19:35:24.000Z","dependencies_parsed_at":"2024-02-19T17:05:01.551Z","dependency_job_id":"ae10ca20-b94b-4128-956f-8c69078afcb5","html_url":"https://github.com/FoxxMD/multi-scrobbler","commit_stats":null,"previous_names":[],"tags_count":79,"template":false,"template_full_name":null,"purl":"pkg:github/FoxxMD/multi-scrobbler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoxxMD%2Fmulti-scrobbler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoxxMD%2Fmulti-scrobbler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoxxMD%2Fmulti-scrobbler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoxxMD%2Fmulti-scrobbler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FoxxMD","download_url":"https://codeload.github.com/FoxxMD/multi-scrobbler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoxxMD%2Fmulti-scrobbler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31213707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-30T15:24:02.938Z","status":"ssl_error","status_checked_at":"2026-03-30T15:23:44.804Z","response_time":138,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deezer","docker","jellyfin","kodi","lastfm","listenbrainz","maloja","mopidy","mpris","music","plex","scrobble","self-hosted","spotify","subsonic","tautulli","youtube-music"],"created_at":"2024-08-01T06:00:46.068Z","updated_at":"2026-04-02T20:09:45.719Z","avatar_url":"https://github.com/FoxxMD.png","language":"TypeScript","funding_links":[],"categories":["🌌 Related"],"sub_categories":[],"readme":"# multi-scrobbler\n\n[![Latest Release](https://img.shields.io/github/v/release/foxxmd/multi-scrobbler)](https://github.com/FoxxMD/multi-scrobbler/releases)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Docker Pulls](https://img.shields.io/docker/pulls/foxxmd/multi-scrobbler)](https://hub.docker.com/r/foxxmd/multi-scrobbler)\n[![Docs](https://img.shields.io/badge/Read%20The%20Docs-1082c2)](https://foxxmd.github.io/multi-scrobbler/)\n\n\n\u003cimg src=\"/assets/icon.png\" align=\"right\"\nalt=\"multi-scrobbler logo\" width=\"180\" height=\"180\"\u003e\n\nA dockerized app that monitors your music listening activity from *everywhere* and scrobbles it *anywhere*.\n\n* Supports scrobbling from many [**Sources**](https://foxxmd.github.io/multi-scrobbler/configuration/sources)\n    * [Azuracast](https://foxxmd.github.io/multi-scrobbler/configuration/sources/azuracast)\n    * [Deezer](https://foxxmd.github.io/multi-scrobbler/configuration/sources/deezer)\n    * [Google Cast (Chromecast)](https://foxxmd.github.io/multi-scrobbler/configuration/sources/google-cast)\n    * [Icecast](https://foxxmd.github.io/multi-scrobbler/configuration/sources/icecast)\n    * [Jellyfin](https://foxxmd.github.io/multi-scrobbler/configuration/sources/jellyfin)\n    * [JRiver](https://foxxmd.github.io/multi-scrobbler/configuration/sources/jriver)\n    * [Kodi](https://foxxmd.github.io/multi-scrobbler/configuration/sources/kodi)\n    * [Koito](https://foxxmd.github.io/multi-scrobbler/configuration/sources/koito-source)\n    * [Last.fm](https://foxxmd.github.io/multi-scrobbler/configuration/sources/lastfm-source)\n    * [Last.fm (Endpoint)](https://foxxmd.github.io/multi-scrobbler/configuration/sources/lastfm-endpoint)\n    * [Libre.fm](https://foxxmd.github.io/multi-scrobbler/configuration/sources/librefm-source)\n    * [ListenBrainz](https://foxxmd.github.io/multi-scrobbler/configuration/sources/listenbrainz-source)\n    * [ListenBrainz (Endpoint)](https://foxxmd.github.io/multi-scrobbler/configuration/sources/listenbrainz-endpoint)\n    * [Maloja](https://foxxmd.github.io/multi-scrobbler/configuration/sources/maloja)\n    * [Mopidy](https://foxxmd.github.io/multi-scrobbler/configuration/sources/mopidy)\n    * [MPD (Music Player Daemon)](https://foxxmd.github.io/multi-scrobbler/configuration/sources/mpd)\n    * [MPRIS (Linux Desktop)](https://foxxmd.github.io/multi-scrobbler/configuration/sources/mpris)\n    * [Musikcube](https://foxxmd.github.io/multi-scrobbler/configuration/sources/musikcube)\n    * [Music Assistant](https://foxxmd.github.io/multi-scrobbler/configuration/sources/listenbrainz-endpoint#music-assistant)\n    * [Plex](https://foxxmd.github.io/multi-scrobbler/configuration/sources/plex)\n    * [Rocksky](https://foxxmd.github.io/multi-scrobbler/configuration/sources/rocksky-source)\n    * [Sonos](https://foxxmd.github.io/multi-scrobbler/configuration/sources/sonos)\n    * [Spotify](https://foxxmd.github.io/multi-scrobbler/configuration/sources/spotify)\n    * [Subsonic-compatible APIs](https://foxxmd.github.io/multi-scrobbler/configuration/sources/subsonic) (like [Airsonic](https://airsonic.github.io/) and [Navidrome](https://www.navidrome.org/))\n    * [teal.fm](https://foxxmd.github.io/multi-scrobbler/configuration/sources/tealfm-source)\n    * [WebScrobbler](https://foxxmd.github.io/multi-scrobbler/configuration/sources/webscrobbler)\n    * [VLC](https://foxxmd.github.io/multi-scrobbler/configuration/sources/vlc)\n    * [Yamaha MusicCast](https://foxxmd.github.io/multi-scrobbler/configuration/sources/yamaha-musiccast)\n    * [Youtube Music](https://foxxmd.github.io/multi-scrobbler/configuration/sources/youtube-music)\n* Supports scrobbling to many [**Clients**](https://foxxmd.github.io/multi-scrobbler/configuration/clients)\n    * [Discord](https://foxxmd.github.io/multi-scrobbler/configuration/clients/discord) (Now Playing)\n    * [Koito](https://foxxmd.github.io/multi-scrobbler/configuration/clients/koito)\n    * [Last.fm](https://foxxmd.github.io/multi-scrobbler/configuration/clients/lastfm)\n    * [Libre.fm](https://foxxmd.github.io/multi-scrobbler/configuration/clients/librefm)\n    * [ListenBrainz](https://foxxmd.github.io/multi-scrobbler/configuration/clients/listenbrainz)\n    * [Maloja](https://foxxmd.github.io/multi-scrobbler/configuration/clients/maloja)\n    * [Rocksky](https://foxxmd.github.io/multi-scrobbler/configuration/clients/rocksky)\n    * [teal.fm](https://foxxmd.github.io/multi-scrobbler/configuration/clients/tealfm)\n* Monitor status of Sources and Clients using [webhooks (Gotify, Ntfy, Apprise)](https://foxxmd.github.io/multi-scrobbler/configuration#webhook-configurations), [healthcheck endpoints](https://foxxmd.github.io/multi-scrobbler/configuration#health-endpoint), or [prometheus metrics](https://foxxmd.github.io/multi-scrobbler/configuration/#prometheus).\n* Supports [Now Playing](https://foxxmd.github.io/multi-scrobbler/configuration/clients#now-playing) for scrobble Clients\n* Supports configuring for single or multiple users (scrobbling for your friends and family!)\n* Web server interface for stats, basic control, and detailed logs\n* Graceful network and client failure handling (queued scrobbles that auto-retry)\n* Smart handling of credentials (persistent, authorization through app)\n* Easy configuration through [ENVs or JSON](ttps://foxxmd.github.io/multi-scrobbler/configuration#configuration-types)\n* Modify data before scrobbling with [regular expression or search patterns](https://foxxmd.github.io/multi-scrobbler/configuration/transforms)\n* Install using [Docker images for x86/ARM](https://foxxmd.github.io/multi-scrobbler/installation#docker) or [locally with NodeJS](https://foxxmd.github.io/multi-scrobbler/installation#nodejs)\n\n[**Quick Start Guide**](https://foxxmd.github.io/multi-scrobbler//quickstart)\n\n\u003cimg src=\"/docsite/static/img/status-ui.png\" width=\"800\"\u003e\n\n**Why should I use this over a browser extension and/or mobile app scrobbler?**\n\n* **Platform independent** -- Because multi-scrobbler communicates directly with service APIs it will scrobble everything you play regardless of where you play it. No more need for apps on every platform you use!\n* **Open-source** -- Get peace of mind knowing exactly how your personal data is being handled.\n* **Track your activity regardless of where you listen** -- Scrobble from many Sources to one Client with ease and without duplicating tracks.\n* **Manage scrobbling for others** -- Scrobble for your friends and family without any setup on their part. Easily silo sources to specific clients to keep plays separate.\n\n**But I already scrobble my music to Last.fm/ListenBrainz, is multi-scrobbler for me?**\n\nYes! You can use [Last.fm as a **Source**](https://foxxmd.github.io/multi-scrobbler/configuration/sources/lastfm-source) or [Listenbrainz as a **Source**](https://foxxmd.github.io/multi-scrobbler/configuration/sources/listenbrainz-source) to forward scrobbles from your profile to any other Client! That way you can keep your current scrobble setup as-is but still get the benefit of capturing your data to a self-hosted location.\n\n## How Does multi-scrobbler (MS) Work?\n\nYou set up [configurations](https://foxxmd.github.io/multi-scrobbler/configuration) for one or more [**Sources**](https://foxxmd.github.io/multi-scrobbler/configuration/sources) and one or more [**Clients**](https://foxxmd.github.io/multi-scrobbler/configuration/clients). MS monitors all of your configured **Sources**. When new tracks are played by a Source MS grabs that information and then sends it (scrobbles it) to all **Clients** that Source is configured to forward to.\n\n### Source\n\nA [**Source**](https://foxxmd.github.io/multi-scrobbler/configuration/sources) is a data source that contains information about music you are playing or have listened to, such as: a desktop player, web music player, or cloud music service. Examples are **Spotify, Jellyfin, Plex, Youtube Music, Navidrome**, etc...\n\nSource configurations consist of:\n\n* A friendly name.\n* Any data needed to communicate or authenticate with the Source.\n* An optional list of Client names that the Source should scrobble to. If omitted the Source also scrobbles to all configured Clients.\n\n### Client\n\nA [**Client**](https://foxxmd.github.io/multi-scrobbler/configuration/clients) is an application that stores the historical information about what music you have played (scrobbles). Examples are **Koito, Last.fm, Listenbrainz**...\n\nClient configurations consist of:\n\n* A friendly name.\n* Any data needed to communicate or authenticate with the Client.\n\n## Quick Start\n\n[See the **Quick Start Guide**](https://foxxmd.github.io/multi-scrobbler/quickstart)\n\n## Installation\n\n[See the **Installation** documentation](https://foxxmd.github.io/multi-scrobbler/installation)\n\n## Configuration\n\n[See the **Configuration** documentation](https://foxxmd.github.io/multi-scrobbler/configuration)\n\n## Usage\n\nA status page with statistics, recent logs, and some runtime configuration options can be found at\n\n```\nhttp://localhost:9078\n```\nOutput is also provided to stdout/stderr as well as file if specified in configuration.\n\nOn first startup you may need to authorize Spotify and/or Last.fm by visiting the callback URL (which can also be accessed from the status page). Visit the status page above to find the applicable link to trigger this.\n\n## Help/FAQ\n\nHaving issues with connections or configuration? Check the [FAQ](https://foxxmd.github.io/multi-scrobbler/FAQ) before creating an issue!\n\n## Development\n\n[Detailed architecture and development guides for Sources/Clients](https://foxxmd.github.io/multi-scrobbler/development/dev-common)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxxmd%2Fmulti-scrobbler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoxxmd%2Fmulti-scrobbler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxxmd%2Fmulti-scrobbler/lists"}