mirror of
https://github.com/FoxxMD/multi-scrobbler.git
synced 2026-04-28 03:39:54 +00:00
70 lines
No EOL
2.8 KiB
Text
70 lines
No EOL
2.8 KiB
Text
---
|
|
title: Icecast
|
|
toc_min_heading_level: 2
|
|
toc_max_heading_level: 5
|
|
description: Setup Icecast and Configuration
|
|
---
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
import CodeBlock from '@theme/CodeBlock';
|
|
import IcecastConfig from '!!raw-loader!@site/../config/icecast.json.example';
|
|
import ShouldScrobble from "@site/src/components/snippets/_should-scrobble-details.mdx"
|
|
|
|
Parse metadata from any Icecast Station (streams) to use for scrobbling.
|
|
|
|
:::note
|
|
|
|
There is no standard format for presenting track information in an Icecast stream and the majority of streams that do include metadata only use a single string (`StreamTitle`) from which metadata can be parsed.
|
|
|
|
Multi-scrobbler will do its best to parse Artist/Album/Track information from this data but the quality and consistency for this is solely based on how the Icecast broadcaster chooses to format their tracks.
|
|
|
|
:::
|
|
|
|
Multi-scrobbler cannot automatically determine if you are listening to a Station. Therefore, **automatic scrobbling for Icecast Sources is off by default.** Use **Should Scrobble Behavior** to initiate scrobbling or configure automatic scrobble.
|
|
|
|
<ShouldScrobble filename="icecast"/>
|
|
|
|
:::tip[Scrobbling Threshold]
|
|
|
|
Icecast does not report track lengths so multi-scrobbler cannot determine if it should scrobble based on percent played. You should instead set a shorter "listened to" **duration** using [Scrobble Thresholds.](/configuration/sources#scrobble-thresholds)
|
|
|
|
:::
|
|
|
|
|
|
#### URL and Sources
|
|
|
|
The URL should be the URL you would use to stream audio.
|
|
|
|
Additional sources are supported based on those found in [`icecast-metadata-stats`](https://github.com/eshaz/icecast-metadata-js/tree/main/src/icecast-metadata-stats#supported-status-apis). To use these with automatic parsing [based on the regular URL](https://github.com/eshaz/icecast-metadata-js/tree/main/src/icecast-metadata-stats#options) include a `sources` array in your config the same way as shown in `icecast-metadata-stats`:
|
|
|
|
<details>
|
|
|
|
<summary>Example</summary>
|
|
|
|
```json5 title="config.json"
|
|
[
|
|
{
|
|
"name": "myIcy",
|
|
"enable": true,
|
|
"data": {
|
|
"url": "http://myIcecast.com/radio",
|
|
"sources": ["icy", "ogg", "sevenhtml"]
|
|
}
|
|
}
|
|
]
|
|
|
|
```
|
|
</details>
|
|
|
|
To manually set these sources include the same [`*Endpoint` options](https://github.com/eshaz/icecast-metadata-js/tree/main/src/icecast-metadata-stats#options) found in `icecast-metadata-stats`.
|
|
|
|
If no `sources` are configured for multi-scrobbler it will automatically try to use `icy` and `ogg`.
|
|
|
|
## Configuration
|
|
|
|
<Config config="IcecastSourceConfig" fileContent={IcecastConfig} name="icecast">
|
|
| Environmental Variable | Required? | Default | Description |
|
|
| :--------------------- | :-------- | :------ | ----------- |
|
|
| `ICECAST_URL` | Yes | | Icecast URL |
|
|
</Config> |