Skip to content

Commit cb5d28c

Browse files
committed
Added cmdb external id.
1 parent 60aeffd commit cb5d28c

File tree

6 files changed

+117
-89
lines changed

6 files changed

+117
-89
lines changed

FAQ.md

+51-25
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ It will show you the relevant information regarding the command and some frequen
2121

2222
### How to turn on scheduled tasks for import/export?
2323

24-
Scheduled tasks are configured via specific environment variables refers to [environment variables](#environment-variables) section, to turn on the import/export tasks add the following
24+
Scheduled tasks are configured via specific environment variables refers
25+
to [environment variables](#environment-variables) section, to turn on the import/export tasks add the following
2526
environment variables:
2627

2728
* `WS_CRON_IMPORT=1`
@@ -136,14 +137,17 @@ database state back to the selected backend.
136137
### Is there support for Multi-user setup?
137138

138139
No, The tool is designed to work for single user. However, It's possible to run container for each user. You can also
139-
use single container for all users, however it's not really easy refer to [issue #136](https://github.com/ArabCoders/watchstate/issues/136).
140+
use single container for all users, however it's not really easy refer
141+
to [issue #136](https://github.com/ArabCoders/watchstate/issues/136).
140142

141143
For `Jellyfin` and `Emby`, you can just generate new API tokens and link it to a user.
142144

143-
For Plex, You should use your admin token and by running the `config:add` command and selecting a user the tool will attempt to generate a token for that user.
145+
For Plex, You should use your admin token and by running the `config:add` command and selecting a user the tool will
146+
attempt to generate a token for that user.
144147

145148
> [!Note]
146-
> If the tool fails to generate a access token for the user, you can run the following command to generate the access token manually.
149+
> If the tool fails to generate a access token for the user, you can run the following command to generate the access
150+
> token manually.
147151
148152
```bash
149153
$ docker exec -ti console backend:users:list --with-tokens -- [BACKEND_NAME]
@@ -232,8 +236,10 @@ $ mv /config/db/watchstate_v01-repaired.db /config/db/watchstate_v01.db
232236
* com.plexapp.agents.xbmcnfo://(id)?lang=en `(XBMC NFO Movies agent)`
233237
* com.plexapp.agents.xbmcnfotv://(id)?lang=en `(XBMC NFO TV agent)`
234238
* com.plexapp.agents.hama://(db)\d?-(id)?lang=en `(HAMA multi source db agent mainly for anime)`
235-
* com.plexapp.agents.youtube://youtube|(seriesId)|(?<folder>\w)?/(?<season>\d)?(.+) [YouTube-Agent.bundle](https://github.com/ZeroQI/YouTube-Agent.bundle) With [jp_scanner.py](https://gist.github.com/ArabCoders/ecb2755aa1d76dc89301ec44b8d367d5) as scanner.
236-
* com.plexapp.agents.cmetadatadb://(id)?(.+) `(Custom metadata db agent)` Will release more information about it at later time.
239+
* com.plexapp.agents.youtube://youtube|(seriesId)|(?<folder>\w)?/(?<season>
240+
\d)?(.+) [YouTube-Agent.bundle](https://github.com/ZeroQI/YouTube-Agent.bundle)
241+
With [jp_scanner.py](https://gist.github.com/ArabCoders/ecb2755aa1d76dc89301ec44b8d367d5) as scanner.
242+
* com.plexapp.agents.cmdb://(id)?(.+) `(Custom metadata db agent)` Will release more information about it at later time.
237243

238244
---
239245

@@ -245,8 +251,10 @@ $ mv /config/db/watchstate_v01-repaired.db /config/db/watchstate_v01.db
245251
* tvmaze://(id)
246252
* tvrage://(id)
247253
* anidb://(id)
248-
* ytinforeader://(id) [jellyfin](https://github.com/ArabCoders/jf-ytdlp-info-reader-plugin) & [Emby](https://github.com/ArabCoders/emby-ytdlp-info-reader-plugin). A yt-dlp plugin for both emby & jellyfin.
249-
* cmetadatadb://(id) `(Custom metadata db agent)` Will release more information about it at later time.
254+
* ytinforeader://(
255+
id) [jellyfin](https://github.com/ArabCoders/jf-ytdlp-info-reader-plugin) & [Emby](https://github.com/ArabCoders/emby-ytdlp-info-reader-plugin).
256+
A yt-dlp plugin for both emby & jellyfin.
257+
* cmdb://(id) `(Custom metadata db agent)` Will release more information about it at later time.
250258

251259
---
252260

@@ -285,7 +293,8 @@ These environment variables relates to the tool itself, you can load them via th
285293
| WS_LIBRARY_SEGMENT | integer | Paginate backend library items request. Per request get total X number. | `1000` |
286294

287295
> [!IMPORTANT]
288-
> for environment variables that has `{TASK}` tag, you **MUST** replace it with one of `IMPORT`, `EXPORT`, `PUSH`, `BACKUP`, `PRUNE`, `INDEXES`, `REQUESTS`. To see tasks active settings run
296+
> for environment variables that has `{TASK}` tag, you **MUST** replace it with one
297+
> of `IMPORT`, `EXPORT`, `PUSH`, `BACKUP`, `PRUNE`, `INDEXES`, `REQUESTS`. To see tasks active settings run
289298
290299
```bash
291300
$ docker exec -ti watchstate console system:tasks
@@ -306,7 +315,8 @@ $ docker exec -ti watchstate console system:tasks
306315

307316
### How to add webhooks?
308317

309-
To add webhook for your backend the URL will be dependent on how you exposed webhook frontend, but typically it will be like this:
318+
To add webhook for your backend the URL will be dependent on how you exposed webhook frontend, but typically it will be
319+
like this:
310320

311321
Directly to container: `http://localhost:8080/?apikey=[WEBHOOK_TOKEN]`
312322

@@ -385,15 +395,17 @@ $ docker exec -ti watchstate console config:unify plex
385395
Plex global webhook API key is: [random_string]
386396
```
387397

388-
The reason is due to the way plex handle webhooks, And to know which webhook request belong to which backend we have to identify the backends.
398+
The reason is due to the way plex handle webhooks, And to know which webhook request belong to which backend we have to
399+
identify the backends.
389400
The unify command will do the necessary adjustments to handle multiple plex servers setup. for more information run.
390401

391402
```bash
392403
$ docker exec -ti watchstate console help config:unify
393404
```
394405

395406
> [!IMPORTANT]
396-
> If you share your plex server with other users, i,e. `Home/managed users`, you have to enable match user id, otherwise their play state
407+
> If you share your plex server with other users, i,e. `Home/managed users`, you have to enable match user id, otherwise
408+
> their play state
397409
> will end up changing your play state. Plex will still send their events. But with match user id they will be ignored.
398410
399411
-----
@@ -453,22 +465,28 @@ Those are some web hook limitations we discovered for the following media backen
453465
#### Emby
454466

455467
* Emby does not send webhooks events for newly added items.
456-
~~[See feature request](https://emby.media/community/index.php?/topic/97889-new-content-notification-webhook/)~~ implemented in `4.7.9` still does not work as expected no metadata being sent when the item notification goes out.
457-
* Emby webhook test event does not contain data. To test if your setup works, play something or do mark an item as played or unplayed you should see changes reflected in `docker exec -ti watchstate console db:list`.
468+
~~[See feature request](https://emby.media/community/index.php?/topic/97889-new-content-notification-webhook/)~~
469+
implemented in `4.7.9` still does not work as expected no metadata being sent when the item notification goes out.
470+
* Emby webhook test event does not contain data. To test if your setup works, play something or do mark an item as
471+
played or unplayed you should see changes reflected in `docker exec -ti watchstate console db:list`.
458472

459473
#### Jellyfin
460474

461-
* If you don't select a user id, the plugin will send `itemAdd` event without user data, and will fail the check if you happen to enable `webhook.match.user` for jellyfin.
475+
* If you don't select a user id, the plugin will send `itemAdd` event without user data, and will fail the check if you
476+
happen to enable `webhook.match.user` for jellyfin.
462477
* Sometimes jellyfin will fire webhook `itemAdd` event without the item being matched.
463478
* Even if you select user id, sometimes `itemAdd` event will fire without user data.
464-
* Items might be marked as unplayed if Libraries > Display - `Date added behavior for new content:` is set to `Use date scanned into library`. This happens if the media file has been replaced.
479+
* Items might be marked as unplayed if Libraries > Display - `Date added behavior for new content:` is set
480+
to `Use date scanned into library`. This happens if the media file has been replaced.
465481

466482
---
467483

468484
### Sometimes newly added episodes or movies don't make it to webhook endpoint?
469485

470-
As stated in webhook limitation section sometimes media backends don't make it easy to receive those events, as such, to complement webhooks,
471-
you should enable import/export tasks by settings their respective environment variables in your `docker-compose.yaml` file.
486+
As stated in webhook limitation section sometimes media backends don't make it easy to receive those events, as such, to
487+
complement webhooks,
488+
you should enable import/export tasks by settings their respective environment variables in your `docker-compose.yaml`
489+
file.
472490
For more information run help on `system:env` command as well as `system:tasks` command.
473491

474492
---
@@ -516,23 +534,31 @@ location and delete the empty directories.
516534
### How to get WatchState working with YouTube content/library?
517535

518536
Due to the nature on how people name their youtube files i had to pick something specific for it to work cross supported
519-
media agents. Please visit [this link](https://github.com/ArabCoders/jf-ytdlp-info-reader-plugin#usage) to know how to name your files. Please be aware these plugins and scanners `REQUIRE`
520-
that you have a `yt-dlp` `.info.json` files named exactly as your media file. For example, if you have `20231030 my awesome youtube video [youtube-RandomString].mkv`
521-
you should have `20231030 my awesome youtube video [youtube-RandomString].info.json` in the same directory. In the future, I plan to
537+
media agents. Please visit [this link](https://github.com/ArabCoders/jf-ytdlp-info-reader-plugin#usage) to know how to
538+
name your files. Please be aware these plugins and scanners `REQUIRE`
539+
that you have a `yt-dlp` `.info.json` files named exactly as your media file. For example, if you
540+
have `20231030 my awesome youtube video [youtube-RandomString].mkv`
541+
you should have `20231030 my awesome youtube video [youtube-RandomString].info.json` in the same directory. In the
542+
future, I plan to
522543
make `.info.json` optional However at the moment the file is required for emby/jellyfin plugin to work.
523544

524545
#### Plex Setup
525546

526-
* Download this agent [YouTube-Agent.bundle](https://github.com/ZeroQI/YouTube-Agent.bundle) please follow the instructions on how to install it from the link itself.
527-
* Download my custom scanner [jp_scanner.py](https://gist.github.com/ArabCoders/ecb2755aa1d76dc89301ec44b8d367d5) and save it into `[...]/Plex Media Server/Scanners/Series/jp_scanner.py` if you don't know there are more detailed guide at this link [How to install a Scanner](https://github.com/ZeroQI/Absolute-Series-Scanner#install--update).
547+
* Download this agent [YouTube-Agent.bundle](https://github.com/ZeroQI/YouTube-Agent.bundle) please follow the
548+
instructions on how to install it from the link itself.
549+
* Download my custom scanner [jp_scanner.py](https://gist.github.com/ArabCoders/ecb2755aa1d76dc89301ec44b8d367d5) and
550+
save it into `[...]/Plex Media Server/Scanners/Series/jp_scanner.py` if you don't know there are more detailed guide
551+
at this link [How to install a Scanner](https://github.com/ZeroQI/Absolute-Series-Scanner#install--update).
528552

529553
#### Jellyfin Setup
530554

531-
* Download this plugin [jf-ytdlp-info-reader-plugin](https://github.com/ArabCoders/jf-ytdlp-info-reader-plugin). Please refer to the link on how to install it.
555+
* Download this plugin [jf-ytdlp-info-reader-plugin](https://github.com/ArabCoders/jf-ytdlp-info-reader-plugin). Please
556+
refer to the link on how to install it.
532557

533558
### Emby Setup
534559

535-
* Download this plugin [emby-ytdlp-info-reader-plugin](https://github.com/ArabCoders/emby-ytdlp-info-reader-plugin). Please refer to the link on how to install it.
560+
* Download this plugin [emby-ytdlp-info-reader-plugin](https://github.com/ArabCoders/emby-ytdlp-info-reader-plugin).
561+
Please refer to the link on how to install it.
536562

537563
If you media is not matching correctly or not marking it as expected, it's most likely scanners issues as plex and
538564
jellyfin/emby reports the GUID differently, and we try our best to match them. So, please hop on discord with the

0 commit comments

Comments
 (0)