I've been scrobbling my listens for a few years now. First on last.fm, then ListenBrainz, and now teal.fm! To do this, I use Pano Scrobbler on my phone and https://github.com/foxxmd/multi-scrobbler on my homelab.

A flow diagram starting with a large vertical box labeled "Phone" on the left. Two arrows labeled "Pano Scrobbler" point from the "Phone" box to two smaller boxes to the right: the top one is labeled "last.fm" and the bottom one is labeled "ListenBrainz". An arrow labeled "homelab picks up scrobbles" points from the "ListenBrainz" box to a final box on the far right labeled "ATProto records for teal.fm on my PDS".

Setup

Prerequisites

  • Server with Docker and Docker Compose

  • Software already scrobbling to ListenBrainz

  • ATProto account

(Installing multi-scrobbler and setting up something to scrobble to ListenBrainz is out of scope for this guide.)

Setting up the source in multi-scrobbler

Make a file in the config directory for multi-scrobbler called listenbrainz.json containing this:

[
  {
    "name": "brainzSource",
    "enable": true,
    "configureAs": "source",
    "data": {
      "token": "{yourToken}",
      "username": "{yourUsername}",
      "url": "https://api.listenbrainz.org"
    }
  }
]

(taken from https://foxxmd.github.io/multi-scrobbler/configuration/sources/listenbrainz-source/#configuration)

Doing something with this data (scrobbling to Teal)

Add these two variables to your environment variables for multi-scrobbler:

TEALFM_IDENTIFIER={yourHandle}
TEALFM_APP_PW={yourAppPassword}

Start up the Docker container, and then wait for a bit. Use something like https://tealfm-slice.wisp.place/ or https://atp.tools/ to check and see if your scrobbles are working.