---
title: Libre.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/librefm.json.example';

:::tip[Other Users]

* To monitor and re-scrobble activity from your Libre.fm account create a [Libre.fm (Source)](/configuration/sources/librefm-source)

:::

To use the official [Libre.fm](https://libre.fm/) website you will need an account. Or, you can run your own GNU FM instance [using the source code](https://github.com/foocorp/gnu-fm).

No API account, [API Key, or Secret](https://github.com/libre-fm/developer/wiki/Libre.fm-fundamentals#api-keys) is currently needed to use the Libre.fm API. Instead, use **any values** for API Key/Secret in the configuration. Authentication is done by allowing access from your account on redirect.

### Callback/Redirect URL

The Redirect (Callback) URL is used to redirect your **browser** to multi-scrobbler after authentication has completed.

So, the *base of the URL* you use should be the *same* as the URL you would use to navigate to the multi-scrobbler dashboard.

<details>

<summary>Example</summary>

If you can visit the multi-scrobbler dashboard by navigating to http://192.168.0.100:9078 in your web browser...

then the ENV `LIBREFM_REDIRECT_URI`, or `redirectUri` for libre.fm json config, should be

```
http://192.168.0.100:9078/librefm/callback
```

</details>

The Redirect URL can be explicitly specified in the configuration below, or by using the global [Base URL](/configuration#base-url) setting.

### Custom Libre.fm instance

If you are **not** using the official Libre.fm instance then specify your custom instance using ENV `LIBREFM_URLBASE` or `urlBase` property in the `data` section in File/AIO config.

The value should be `protocol://libre.tld/path/prefix` EX:

```
https://my.cool.libre.com/2.0/
```

## Configuration

<Config config="LibrefmClientConfig" fileContent={JsonConfig} client name="librefm">
        | Environmental Variable | Required? | Default                                  | Description                                                                                      |
        | ---------------------- | --------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------ |
        | `LIBREFM_ID`           | Yes       |                                          | A unique ID                                                                                      |
        | `LIBREFM_ENABLE`       | No        |                                          | Set to `true` to enable Libre.fm, if not using any of the below variables                        |
        | `LIBREFM_API_KEY`      | No        | `anything`                               | Optional API Key                                                                                 |
        | `LIBREFM_SECRET`       | No        | `anything`                               | Optional shared secret                                                                           |
        | `LIBREFM_REDIRECT_URI` | No        | `http://localhost:9078/librefm/callback` | Url to use for authentication. Must include `librefm/callback` somewhere in it                   |
        | `LIBREFM_SESSION`      | No        |                                          | Session id. Will be generated by authentication flow if not provided.                            |
        | `LIBREFM_URLBASE`      | No        |                                          | Use for custom Libre.fm instance only. The host + path prefix EX `https://my.libre.example/2.0/` |
        | `LIBREFM_NAME`         | No        |                                          | A vanity name different than ID                                                                  |
</Config>
