• Stars
    star
    334
  • Rank 126,264 (Top 3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Scrobble plays from multiple sources to multiple clients

multi-scrobbler

Latest Release License: MIT Docker Pulls

multi-scrobbler logo

A javascript app to scrobble music you listened to, to Maloja, Last.fm, and ListenBrainz

Why should I use this over a browser extension and/or mobile app scrobbler?

  • 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!
  • Open-source -- Get peace of mind knowing exactly how your personal data is being handled.
  • Track your activity regardless of where you listen -- Scrobble from many Sources to one Client with ease and without duplicating tracks.
  • 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.

But I already scrobble my music to Last.fm/ListenBrainz, is multi-scrobbler for me?

Yes! You can use Last.fm as a Source or Listenbrainz as a 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.

How Does multi-scrobbler (MS) Work?

You set up configurations for one or more Sources and one or more Clients. MS monitors all of your configured Sources. When new tracks are played by a Source it grabs that information and then sends it (scrobbles it) to all Clients that Source is configured to scrobble to.

Source

A Source is a data source that contains information about tracks you are playing like a music player or platform. Examples are Spotify, Jellyfin, Plex, Youtube Music, Airsonic, etc...

Source configurations consist of:

  • A friendly name.
  • Any data needed to communicate or authenticate with the Source.
  • An optional list of Client names that the Source should scrobble to. If omitted the Source also scrobbles to all configured Clients.

Client

A Client is an application that stores the historical information about what songs you have played (scrobbles). Examples are Maloja, Last.fm, Listenbrainz...

Client configurations consist of:

  • A friendly name.
  • Any data needed to communicate or authenticate with the Client.

Installation

See the Installation documentation

Configuration

See the Configuration documentation

Usage

A status page with statistics, recent logs, and some runtime configuration options can be found at

http://localhost:9078

Output is also provided to stdout/stderr as well as file if specified in configuration.

On 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.

Help/FAQ

Having issues with connections or configuration? Check the FAQ before creating an issue!

License

MIT

More Repositories

1

intellij-jvm-options-explained

Common JVM options used with Intellij and what they do
748
star
2

laravel-elasticbeanstalk-cron

Ensure one instance within an EB environment is running Laravel's Scheduler
PHP
60
star
3

laravel-elasticbeanstalk-queue-worker

Shell
51
star
4

context-mod

an event-based, reddit moderation bot built on top of snoowrap and written in typescript
TypeScript
49
star
5

tautulli-notification-digest

Consolidate Tautuilli Notification agent events for discord
TypeScript
15
star
6

rtl-sdr-icecast-docker

Relay HD radio through icecast and save to mp3
Python
10
star
7

espanso-all-emojis

All emojis from gemoji, with non-conflicting alt names, as an espanso package
8
star
8

emojify

Converts Discord emoji shortcodes back to universal emojis (unicode)
JavaScript
4
star
9

logging

A typed, opinionated, batteries-included, Pino-based logging solution for backend TS/JS projects
TypeScript
4
star
10

react-cowsay

A react wrapper for cowsay
JavaScript
4
star
11

string-sameness

Compare the sameness of two strings
TypeScript
4
star
12

interview-questions

PHP
3
star
13

szurubooru-ocr

OCR text extraction for szurubooru
TypeScript
3
star
14

redditdatalive

Live Reddit Data, visualized
JavaScript
2
star
15

sendmail-ses-elasticbeanstalk

Automate sendmail configuration with AWS SES on AWS Elastic Beanstalk deployments
Shell
2
star
16

linuxsetup

Resources for setting up my personal linux environment
JavaScript
2
star
17

unraid-docker-templates

Templates for dockers on unraid
2
star
18

awesome-data-mining

Data sets, mining and scraping tools, and resources for gathering that sweet sweet information
2
star
19

endlessh-notify

Event notification for endlessh and endlessh-go
TypeScript
1
star
20

doyouremember

A silly tribute to a catchy tune
HTML
1
star
21

laravel-loggly

A service provider for logging with Loggly
PHP
1
star
22

ts-project-base

TypeScript
1
star
23

laravel-mail-extras

PHP
1
star
24

streamSave

Save streaming audio locally using pure JS
JavaScript
1
star
25

themobilesocial.com

HTML
1
star
26

annals-of-awesome

Awesome projects and best practices I want to use in my work
1
star
27

cm-yaml

TypeScript
1
star
28

winston-duplex

A simple duplex (transform) stream transport for winstonjs to enable streaming/event listeners
TypeScript
1
star
29

pushshift-sandbox

a sandbox for pushshift.io queries
JavaScript
1
star
30

react-interpunct

React component to visibly display whitespace characters
JavaScript
1
star
31

EasyClockKiller

A simple script for automating clocking in and out of easyclock.net
JavaScript
1
star
32

swag-dashboard-archived-logs

Make SWAG Dashboard read ALL logs
Shell
1
star
33

endlessh-go-crowdsec

1
star
34

regex-buddy-core

Javascript helper functions for handling Regular Expressions and parsing user input as Regular Expressions
TypeScript
1
star
35

discoFoxx

A sly, simple discord bot written for extensibility
TypeScript
1
star
36

blog

Makefile
1
star
37

discord-overseer-info

TypeScript
1
star
38

get-version

Get a version identifier from set a ordered sources
TypeScript
1
star