Teal.fm
To monitor and re-scrobble activity from a ATProto Profile create a teal.fm (Source)
teal.fm is a social discovery and web viewing service for scrobbles stored/available on the ATProto network/your repository in a PDS (Personal Data Server).
How does that work?
The AT Protocol is a standard to allow different applications to share and interpret your social data.
Your data is stored in a personal repository in a PDS (Personal Data Server), which is data-type agnostic (it's just JSON). Each application defines their own datatypes and pulls data from your repository to render to you, your network, etc...
Even though the application and the PDS/repository are independent, all of this is done for you automatically when you create a Bluesky account.
So...
- multi-scrobbler "scrobbles" your plays to your repository
- in a JSON data structure which includes teal.fm's data type and structure
- at a known location for teal.fm's data (
fm.teal), in a list that is appended to as you continue to scrobble
- when accessing teal.fm, or another application that knows how to read it, your data is pulled from the repository to render the app
The default Bluesky PDS 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.
teal.fm is still in developement and does not have a public website, yet.
To view your teal.fm scrobbles you can:
- use wrapped.baileytownsend.dev which gives a simple stats overview of your scrobbles
- use atproto.at to view the raw data (convenience URLs are generated in multi-scrobbler for you to do this)
Setup
Bluesky
- Create a Bluesky account, if you don't already have one
- Navigate to https://bsky.app/settings/app-passwords
- Settings -> Privacy and Security -> App passwords
- Create a new App Password and save it somewhere, it will not be shown again
Configuration
Handle
The handle used with multi-scrobbler should be your full ATProto handle, including TLD.
- For regular Bluesky account this will be like:
alice.bsky.social - For Bluesky accounts that use their website as their account this is your domain:
mydomain.com - For non-Bluesky users, you probably already know your handle
If you do not include a TLD then multi-scrobbler will automatically append .bsky.social to your handle value.
- ENV
- File
- AIO
| Environmental Variable | Required? | Default | Description |
|---|---|---|---|
| TEALFM_IDENTIFIER | Yes | Your full ATProto handle. For Bluesky account this is like myUser.bsky.social | |
| TEALFM_APP_PW | Yes | Bluesky/ATProto network App Password |
[
{
"name": "myTeal",
"configureAs": "client",
"data": {
"identifier": "alice.bsky.social",
"appPassword": "twog-phu7-4dhe-y4j3"
}
}
]
or explore the schema with an example and live editor/validator
{
"clients": [
{
"name": "myTeal",
"configureAs": "client",
"data": {
"identifier": "alice.bsky.social",
"appPassword": "twog-phu7-4dhe-y4j3"
},
"type": "tealfm"
}
]
}
or explore the schema with an example and live editor/validator