Skip to content

Commit

Permalink
docs(chrome): Update device connection instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
FoxxMD committed Jan 16, 2024
1 parent bd8cf18 commit 57b5528
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 4 deletions.
18 changes: 14 additions & 4 deletions docsite/docs/configuration/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -701,21 +701,25 @@ 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).

##### Linux

**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.

Expand All @@ -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.
Expand All @@ -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 |
Expand All @@ -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

Expand Down
4 changes: 4 additions & 0 deletions src/backend/common/infrastructure/config/source/chromecast.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
6 changes: 6 additions & 0 deletions src/backend/common/schema/aio-source.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand Down
6 changes: 6 additions & 0 deletions src/backend/common/schema/aio.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand Down
6 changes: 6 additions & 0 deletions src/backend/common/schema/source.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand Down

0 comments on commit 57b5528

Please sign in to comment.