---
title: Teal.fm
toc_min_heading_level: 2
toc_max_heading_level: 5
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
import JsonConfig from '!!raw-loader!@site/../config/tealfm.json.example';

:::tip[Other Uses]

* To **scrobble to** an ATProto PDS, create a [teal.fm (Client)](/configuration/clients/tealfm)

:::

[**teal.fm**](https://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)](https://github.com/Bluesky-social/pds).

This Source monitors the teal.fm scrobbles in your PDS and then re-scrobbles discovered tracks to configured clients.

Learn more about how teal.fm scrobbles work in the [teal.fm (Client)](/configuration/clients/tealfm) docs. 

## Setup

Follow the **Setup** instructions in the [teal.fm (Client)](/configuration/clients/tealfm#setup) docs to get access to your Bluesky PDS repository and scrobble data.

## Configuration

See the [teal.fm (Client)](/configuration/clients/tealfm#setup) configuration for general setup. The only difference for **Source** configuration:

* Cannot be setup with ENV config 
* [File/AIO config](/configuration?configType=file#configuration-types) must include `"configureAs": "source"`

<Config config="TealClientConfig" fileContent={JsonConfig} name="tealfm">
        :::note
            You cannot use ENV variables shown in the [teal.fm Client config](/configuration/clients/tealfm#configuration) -- multi-scrobbler assumes teal.fm ENVs are always used for the **client** configuration. You must use the [File or AIO](/configuration?configType=file#configuration-types) config to setup teal.fm as a Source.
        :::
</Config>