diff --git a/docsite/docs/configuration/configuration.md b/docsite/docs/configuration/configuration.md index 3d07908a..f2bd0662 100644 --- a/docsite/docs/configuration/configuration.md +++ b/docsite/docs/configuration/configuration.md @@ -701,7 +701,11 @@ If your media device can be **Cast** to using this button ![Chromecast Icon](htt **Note:** This source relies on common, **basic** music data provided by the cast device which will always be less exhaustive than data parsed from full source integrations. If there is an existing [Source](#source-configurations) it is recommended to configure for it and blacklist the app on Google Cast, rather than relying solely on Google Cast for scrobbling. -#### Networking Requirements +#### Connecting Devices + +Cast devices can be manually configured using [File-based configuration](#file-based-14) OR automatically discovered using **mDNS.** + +##### mDNS Discovery The host machine running multi-scrobbler must be configured to allow [mDNS traffic on port 5353/UDP](https://book.hacktricks.xyz/network-services-pentesting/5353-udp-multicast-dns-mdns). @@ -709,13 +713,13 @@ The host machine running multi-scrobbler must be configured to allow [mDNS traff **Docker** -The host machine must have [avahi-daemon](https://avahi.org/) running to circumvent limitations with DNS resolution due to musl in Alpine. All major linux distributions package avahi and many have it built-in. Once avahi is running you must pass D-Bus and the avahi daemon socket to your container like so: +The host machine must have [avahi-daemon](https://avahi.org/) running to circumvent limitations with DNS resolution due to musl in Alpine. Most major linux distributions package avahi and many have it built-in. Once avahi is running you must pass D-Bus and the avahi daemon socket to your container like so: ``` docker run ... -v /var/run/dbus:/var/run/dbus -v /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket ... foxxmd/multi-scrobbler ``` -**Flatpak** +**Flatpak/Nodejs** No additional steps are required. @@ -725,6 +729,10 @@ No additional steps are required. Unsupported at this time. +**Nodejs** + +No additional steps are required. + #### Cast Troubleshooting Please include any/all logs with raw output if there are any errors encountered as this is critical to diagnosing issues. @@ -749,6 +757,8 @@ To diagnose bad/incomplete track information or strange MS player behavior pleas ### ENV-Based +Note: [Manually configuring cast device connections](#connecting-devices) is only available through [File-based config.](#file-based-14) + | Environmental Variable | Required? | Default | Description | |------------------------|-----------|---------|--------------------------------------------------------------------------------------| | CC_ENABLE | No | | Set to 'true' to enable Cast monitoring without needing to define other ENVs | @@ -759,7 +769,7 @@ To diagnose bad/incomplete track information or strange MS player behavior pleas ### File-Based -See [`chromecast.json.example`](https://github.com/FoxxMD/multi-scrobbler/blob/master/config/webscrobbler.json.example) or [explore the schema with an example and live editor/validator](https://json-schema.app/view/%23%2Fdefinitions%2FChromecastSourceConfig/%23%2Fdefinitions%2FChromecastData?url=https%3A%2F%2Fraw.githubusercontent.com%2FFoxxMD%2Fmulti-scrobbler%2Fmaster%2Fsrc%2Fbackend%2Fcommon%2Fschema%2Fsource.json) +See [`chromecast.json.example`](https://github.com/FoxxMD/multi-scrobbler/blob/master/config/chromecast.json.example) or [explore the schema with an example and live editor/validator](https://json-schema.app/view/%23%2Fdefinitions%2FChromecastSourceConfig/%23%2Fdefinitions%2FChromecastData?url=https%3A%2F%2Fraw.githubusercontent.com%2FFoxxMD%2Fmulti-scrobbler%2Fmaster%2Fsrc%2Fbackend%2Fcommon%2Fschema%2Fsource.json) # Client Configurations diff --git a/src/backend/common/infrastructure/config/source/chromecast.ts b/src/backend/common/infrastructure/config/source/chromecast.ts index faa83501..8b89f5c4 100644 --- a/src/backend/common/infrastructure/config/source/chromecast.ts +++ b/src/backend/common/infrastructure/config/source/chromecast.ts @@ -84,10 +84,14 @@ export interface ChromecastData extends CommonSourceData { export interface ChromecastDeviceInfo { /** * A friendly name to identify this device + * + * @examples ["MySmartTV"] * */ name: string /** * The IP address of the device + * + * @examples ["192.168.0.115"] * */ address: string } diff --git a/src/backend/common/schema/aio-source.json b/src/backend/common/schema/aio-source.json index 96462ac5..cedb02ce 100644 --- a/src/backend/common/schema/aio-source.json +++ b/src/backend/common/schema/aio-source.json @@ -174,11 +174,17 @@ "properties": { "address": { "description": "The IP address of the device", + "examples": [ + "192.168.0.115" + ], "title": "address", "type": "string" }, "name": { "description": "A friendly name to identify this device", + "examples": [ + "MySmartTV" + ], "title": "name", "type": "string" } diff --git a/src/backend/common/schema/aio.json b/src/backend/common/schema/aio.json index 3db89604..bd9ea628 100644 --- a/src/backend/common/schema/aio.json +++ b/src/backend/common/schema/aio.json @@ -174,11 +174,17 @@ "properties": { "address": { "description": "The IP address of the device", + "examples": [ + "192.168.0.115" + ], "title": "address", "type": "string" }, "name": { "description": "A friendly name to identify this device", + "examples": [ + "MySmartTV" + ], "title": "name", "type": "string" } diff --git a/src/backend/common/schema/source.json b/src/backend/common/schema/source.json index 97e3d4ea..8f85ea57 100644 --- a/src/backend/common/schema/source.json +++ b/src/backend/common/schema/source.json @@ -221,11 +221,17 @@ "properties": { "address": { "description": "The IP address of the device", + "examples": [ + "192.168.0.115" + ], "title": "address", "type": "string" }, "name": { "description": "A friendly name to identify this device", + "examples": [ + "MySmartTV" + ], "title": "name", "type": "string" }