Skip to main content

Rocksky

Other Uses

To monitor and re-scrobble activity from Rocksky create a Rocksky (Source)

Rocksky is music tracking and discovery platform built on the AT Protocol and your your Atmosphere Account.

How does that work?

Your Atmosphere Account consists of social data (it's just JSON) stored in a personal repository on a PDS (Personal Data Server), all of which is standardized under the AT Protocol.

The AT Protocol defines how your data is stored, how you authenticate to write to it, and how indpendent apps share and consume it. Critically, each layer (data storage, app, communication) of the AT Protocol can be operated by indpendent entities so your data and experience not locked behind a walled garden.

Although each layer can be implemented separately (you can self-host everything!), it is normally a simple process for an end-user to create and start using an Atmosphere Account as many apps can do everything for you. The most common example being a Bluesky, but there are other public account providers.

When Multi-Scrobbler uses the AT Protocol...

  • multi-scrobbler "scrobbles" (writes) your plays to your repository
  • when accessing Rocksky, or another application that knows how to read it, your data is pulled from the repository to render their app
Your Data Is Public

Atproto PDS access is public, meaning your scrobbles are also public (read-only). This isn't any different than using Last.fm or Listenbrainz, in terms of privacy.

Scrobble Data Standards​

important

Rocksky's design goal is to store scrobbles with metdata-complete, 3rd party verifiable track information so that it can be a metadata-rich discovery platform.

It is not intended to be an exhaustive source-of-truth or backup for all your data.

If you need a client that will accept your data, regardless of its completeness, consistency, or quality, you should consider scrobbling to an additional Scrobble Client like Koito, Maloja, or Listenbrainz.

Setup​

You will need an Atmosphere Account (like Bluesky) to use Rocksky.

Navigate to rocksky.app and sign up/logn using your Atmosphere Account.

Then, use one of the following approaches to configure communication with Rocksky and determine how scrobbling will occur.

The PDS approach enables Multi-Scrobbler to directly scrobble to your account's repository.

This is the recommended approach because MS can verify the scrobble data quality before it is scrobbled, giving you the ability to get feedback on missing data and the chance to correct or retry the scrobble manually.

Setup

Navigate to the Account settings for your Atmosphere account on your respective PDS and create a new App Password.

If you don't know what a PDS is or how to find this just use Bluesky:

Use this App Password with ENV as ROCKSKY_APP_PW or as appPassword in File/AIO configuration.

Scrobble Data Validation and Automatically Fixing It

When using the PDS approach Multi-scrobbler will validate that your scrobble data meets Rocksky's scrobble data quality before it is sent:

  • if your data is missing track, artist, or album the scrobble will always fail
  • if your data does not have at least one of: ISRC, Recording MBID, or Spotify Id then it will fail on automatic scrobble
    • You can force the scrobble if you are sure the data is correct by retrying the scrobble from MS's web UI

There are some scenarios where you might not need to worry about this at all:

  • Your Sources already have high quality data: like Spotify, Listenbrainz, Plex/Jellyfin with metadata agents, Navidrome with Picard-matched files, etc...
  • You have a Musicbrainz Stage enriching Play data before it gets to the Rocksky Client.

Otherwise, you should consider configuring the Rocksky Transformer Stage to fix/enrich your scrobble data automatically. This stage uses Rocksky's own metadata API to match your data and correct it so that it is high enough quality to submit to Rocksky.

The default configuration for Rocksky Transformer Stage only makes calls to Rocksky when essential data is missing and only modifies your data when it has high confidence. You can safely apply this Stage without worrying about it majorly affecting what is actually scrobbled.

Working Examples
services:
multi-scrobbler:
image: foxxmd/multi-scrobbler
environment:
# searches with the searchOrder
# isrc => basic
- RS_PRESETS=default
# ... your source ENVs go here
#
- ROCKSKY_ID=Rocky
- ROCKSKY_HANDLE=alice.bsky.social
- ROCKSKY_APP_PW=1234567
# applies Rocksky Stage to preTransform of Rocksky Client
- ROCKSKY_TRANSFORMS=rocksky


volumes:
- "./config:/config"
ports:
- "9078:9078"
restart: unless-stopped

Configuration​

Determining Your Atmosphere Handle/Identifier

Your Atmosphere identifier/handle should be either:

  • A valid DID, starting with did:plc:... or did:web:...
  • Your full Atmosphere Account ATProto handle, including TLD

If using a handle:

  • For regular Bluesky account this will be like: alice.bsky.social
  • For Bluesky accounts that use their domain as their account this is your domain: mydomain.com
  • For non-Bluesky-PDS users, you probably already know your handle

If your identifier does not look like a DID and does not include a TLD then multi-scrobbler will automatically append .bsky.social to your handle value.

Configuration Type

This is configuration for the ENV Config Type.

Environmental VariableTypeDefaultDescription
ROCKSKY_IDstringA globally unique ID EX myComponentId
ROCKSKY_NAMEstringValue of ROCKSKY_IDA vanity name EX My Cool Component
ROCKSKY_ENABLEbooleantrueShould this component be used?
ROCKSKY_HANDLEstringThe fully-qualified handle, or identifier, for your Atmosphere account
ROCKSKY_APP_PWstringThe App Password you created for your Atmosphere account
ROCKSKY_TOKENstring(DEPRECATED) Access Token generated from https://rocksky.app/access-tokens in Rocksky for your account

Bold/Italic = Required