···99import SchemaLink from "../../src/components/SchemaLink";
1010import AIOExample from "../../src/components/AIOExample";
1111import FileExample from "../../src/components/FileExample";
1212+import ScrobbleThreshold from "@site/src/components/snippets/_scrobble-threshold.mdx"
12131314import AIOConfig from '!!raw-loader!../../../config/config.json.example';
1415import AzuracastConfig from '!!raw-loader!../../../config/azuracast.json.example';
···337338338339<h3 id="scrobble-thresholds">Scrobble Thresholds</h3>
339340340340-For Sources where multi-scrobbler monitors active listening, it uses one of two metrics to determine if a Song is scrobbable based on your listening:
341341-342342-* **percent** of track listened to (50% or more)
343343-* or amount of time (**duration**) track was listened to (4 minutes or more)
344344-345345-These default values are based on [last.fm's scrobble guidance.](https://www.last.fm/api/scrobbling#when-is-a-scrobble-a-scrobble)
346346-347347-Each Source can have these values customized using values in the Source's `options` in [file or aio config](./?configType=file#configuration-types):
348348-349349-```json5 title="azuracast.json"
350350-{
351351- "data": {
352352- // ...
353353- },
354354- "options": {
355355- "scrobbleThresholds": {
356356- "duration": 40, // scrobbable if listened to for 40 seconds or more
357357- "percent": 20 // scrobbable if listened to for 20% or more of the track's length
358358- }
359359- }
360360-}
361361-```
341341+<ScrobbleThreshold filename="spotify"/>
362342363343These can also be configured **globally** for all Sources using ENVs:
364344
···11+import CodeBlock from '@theme/CodeBlock';
22+33+A **Source** that monitors active listening uses one of two metrics to determine if a Song is scrobbable based on your listening:
44+55+* **percent** of track listened to (50% or more)
66+* or amount of time (**duration**) track was listened to (4 minutes or more)
77+88+These default values are based on [last.fm's scrobble guidance.](https://www.last.fm/api/scrobbling#when-is-a-scrobble-a-scrobble)
99+1010+These values can be customized in the `options` of Source's [file or aio config](/configuration#configuration-types):
1111+<CodeBlock
1212+language="json5"
1313+title={`${props.filename}.json`}>
1414+{`{
1515+ "data": {
1616+ // ...
1717+ },
1818+ "options": {
1919+ // highlight-start
2020+ "scrobbleThresholds": {
2121+ "duration": 40, // scrobbable if listened to for 40 seconds or more
2222+ "percent": 20 // scrobbable if listened to for 20% or more of the track's length
2323+ }
2424+ // highlight-end
2525+ }
2626+}`}
2727+</CodeBlock>
···11+import CodeBlock from '@theme/CodeBlock';
22+33+This **Source** supports toggling scrobbling on or off manually. This action can be taken on the Web Dashboard by clicking the link next to **Should Scrobble** found in each Source's status card.
44+55+Additionally, the default behavior for scrobbling can be explicitly set by adding the following value to a Source's `options` in [file or aio config](/configuration?configType=file#configuration-types):
66+77+<CodeBlock
88+language="json5"
99+title={`${props.filename}.json`}>
1010+{`{
1111+ "data": {
1212+ // ...
1313+ },
1414+ "options": {
1515+ // highlight-start
1616+ // set to true to always scrobble automatically
1717+ // set to false to never scrobble automatically
1818+ "systemScrobble": true
1919+ // highlight-end
2020+ }
2121+}}`}
2222+</CodeBlock>
+3
docsite/src/components/snippets/ingress-short.mdx
···11+This component **recieves data** from outside services, rather than actively contacting the outside service for data itself.
22+33+In order for it to work multi-scrobbler must be accessible, on an open port or through reverse-proxy, to the service that will be sending data to it.