You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: FAQ.md
+51-25
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,8 @@ It will show you the relevant information regarding the command and some frequen
21
21
22
22
### How to turn on scheduled tasks for import/export?
23
23
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
25
26
environment variables:
26
27
27
28
*`WS_CRON_IMPORT=1`
@@ -136,14 +137,17 @@ database state back to the selected backend.
136
137
### Is there support for Multi-user setup?
137
138
138
139
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).
140
142
141
143
For `Jellyfin` and `Emby`, you can just generate new API tokens and link it to a user.
142
144
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.
144
147
145
148
> [!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
* com.plexapp.agents.xbmcnfo://(id)?lang=en `(XBMC NFO Movies agent)`
233
237
* com.plexapp.agents.xbmcnfotv://(id)?lang=en `(XBMC NFO TV agent)`
234
238
* 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.
* 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.
* cmdb://(id) `(Custom metadata db agent)` Will release more information about it at later time.
250
258
251
259
---
252
260
@@ -285,7 +293,8 @@ These environment variables relates to the tool itself, you can load them via th
285
293
| WS_LIBRARY_SEGMENT | integer | Paginate backend library items request. Per request get total X number. |`1000`|
286
294
287
295
> [!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
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.
389
400
The unify command will do the necessary adjustments to handle multiple plex servers setup. for more information run.
390
401
391
402
```bash
392
403
$ docker exec -ti watchstate console help config:unify
393
404
```
394
405
395
406
> [!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
397
409
> will end up changing your play state. Plex will still send their events. But with match user id they will be ignored.
398
410
399
411
-----
@@ -453,22 +465,28 @@ Those are some web hook limitations we discovered for the following media backen
453
465
#### Emby
454
466
455
467
* 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`.
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`.
458
472
459
473
#### Jellyfin
460
474
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.
462
477
* Sometimes jellyfin will fire webhook `itemAdd` event without the item being matched.
463
478
* 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.
465
481
466
482
---
467
483
468
484
### Sometimes newly added episodes or movies don't make it to webhook endpoint?
469
485
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.
472
490
For more information run help on `system:env` command as well as `system:tasks` command.
473
491
474
492
---
@@ -516,23 +534,31 @@ location and delete the empty directories.
516
534
### How to get WatchState working with YouTube content/library?
517
535
518
536
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
522
543
make `.info.json` optional However at the moment the file is required for emby/jellyfin plugin to work.
523
544
524
545
#### Plex Setup
525
546
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).
528
552
529
553
#### Jellyfin Setup
530
554
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.
532
557
533
558
### Emby Setup
534
559
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.
536
562
537
563
If you media is not matching correctly or not marking it as expected, it's most likely scanners issues as plex and
538
564
jellyfin/emby reports the GUID differently, and we try our best to match them. So, please hop on discord with the
0 commit comments