Files
watchstate/NEWS.md
2024-07-22 19:35:08 +03:00

7.7 KiB

Old Updates

2024-07-06

Recently we have introduced a new feature that allows you to use Jellyfin and Emby OAuth access tokens for syncing your play state. This is especially handy if you're not the server owner and can't create API keys. Please note, this feature is in its experimental phase, so you might encounter some issues as we yet to explorer the full depth of the implementation. We're actively working on making it better, If you have any feedback or suggestions, please let us know.

Getting your OAuth token is easy. When prompted, simply enter your username:password in place of the API key through the WebUI or the config:add/manage command. WatchState will automatically contact the backend and generate the token for you, as this step is required to get more information like your User ID which is sadly inaccessible without us generating the token. Both Emby & Jellyfin doesn't provide an API endpoint to inquiry about the current user.

We have also added new config:test command to run functional tests on your backends, this will not alter your state, And it's quite useful to know if the tool is able to communicate with your backends. without problems, It will report the following, OK which mean the indicated test has passed, FA which mean the indicated test has failed. And SK which mean the indicated test has been skipped or not yet implemented.

2024-06-23

WE are happy to announce that the WebUI is ready for wider usage and we are planning to release it in the next few months. We are actively working on it to improve it. If you have any feedback or suggestions, please let us know. We feel it's almost future complete for the things that we want.

On another related news, we have added new environment variable WS_API_AUTO "disabled by default" which can be used to automatically expose your API KEY/TOKEN. This is useful for users who are using the WebUI from many different browsers and want to automate the configuration process.

While the WebUI is included in the main project, it's a standalone feature and requires the API settings to be configured before it can be used. This environment variable can be enabled by setting WS_API_AUTO=true in ${WS_DATA_PATH}/config/.env.

Important

This environment variable is GREAT SECURITY RISK, and we strongly recommend not to use it if WatchState is exposed to the internet.

2024-05-14

We are happy to announce the beta testing of the WebUI. To get started on using it you just need to visit the url http://localhost:8080 We are supposed to enabled it by default tomorrow, but we decided to give you a head start. We are looking forward to your feedback. If you don't use the WebUI then you need to add the environment variable WEBUI_ENABLED=0 in your compose.yaml file. and restart the container.

2024-05-13

In preparation for the beta testing of WebUI in two days, we have made little breaking change, we have changed the environment variable WS_WEBUI_ENABLED to just WEBUI_ENABLED, We made this change to make sure people don't disable the WebUIby mistake via the environment page in the WebUI. The WebUI will be enabled by default, in two days from now, to disable it from now add WEBUI_ENABLED=false to your compose.yaml file. As this environment variable is system level, it cannot be set via .env file.

Note: WS_WEBUI_ENABLED will be gone in few weeks, However it will still work for now, if WEBUI_ENABLED is not set.

2024-05-05

Edit - We received requests that people are exposing watchstate externally, and there was concern that having open webhook endpoints might lead to abuse. As such, we have added a new environment variable WS_SECURE_API_ENDPOINTS. Simply set the environment variable to 1 to secure the webhook endpoint. This means you have to add ?apikey=yourapikey to the end of the webhook endpoint.


We are deprecating the use of the following environment variables WS_DISABLE_HTTP, WS_DISABLE_CRON, WS_DISABLE_CACHE, and replacing them with DISABLE_CACHE, DISABLE_CRON, DISABLE_HTTP. The old environment variables will be removed in the future versions. It doesn't make sense to mark them as WS_ since they are global and do not relate to the tool itself. And they must be set from the compose.yaml file itself.

2024-05-04

The new webhook endpoint no longer requires a key, and it's now open to public you just need to specify the backend name.

2024-04-30 - [BREAKING CHANGE]

We are going to retire the old webhooks endpoint, please refer to the FAQ to know how to update to the new API endpoint. We are going to include WebUI for alpha testing after two weeks from today 2024-05-15. Which most likely means the old webhooks endpoint will be removed. We will try to preserve the old endpoint for a while, but it's not guaranteed we will be able to.

2024-03-08

This update include breaking changes to how we process commands, we have streamlined the command interface to accept some consistent flags and options. Notably, we have added -s, --select-backend flag to all commands that accept it. commands that were accepting comma separated list of backends now needs to be separate option call for example --select-backend home_plex --select-backend home_jellyfin instead of --select-backend home_plex,home_jellyfin.

All commands that was accepting backend name as argument now accepts -s, --select-backend flag. This change is to make the command interface more consistent and easier to use.

Another breaking change is the removal of the -c, --config flag from all commands that was accepting it. This flag was used to override the default servers.yaml file. This was not working as expected as there are more than just the servers.yaml to consider like, the state of cache, and the state of the database. As such, we have removed this flag. However, we have added a new environment variable called WS_BACKENDS_FILE which can be used to override the default servers.yaml file. We strongly recommend not to use it as it might lead to unexpected behavior.

We started working on a Web API which hopefully will lead to a web frontend to manage the tool. This is a long term goal, and it's not expected to be ready soon. However, the Web API is expected within 3rd quarter of 2024.

2023-11-11

We added new feature watch progress tracking YAY which works exclusively via webhooks at the moment to keep tracking of your play progress. As this feature is quite EXPERIMENTAL we have separate command and task for it state:progress will send back progress to your backends. However, Sadly this feature is not working at the moment with Jellyfin once they accept my PR #10573 i'll add support for it. However, The feature works well with both Plex and Emby.

The support via webhooks is excellent, and it's the recommended way to track your progress. However, if you cant use webhooks, the state:import command will pull the progress from your backends. however at reduced rate due to the nature of the command. If you want faster progress tracking, you should use webhooks.

To sync the progress update, You have to use state:progress command, it will push the update to all export enabled backends. This feature is disabled by default like the other features. To enable it add new environment variable calledWS_CRON_PROGRESS=1. We push progress update every 45 minutes, to change it like other features add WS_CRON_PROGRESS_AT="*/45 * * * *" This is the default timer.

On another point, we have decided to enable backup by default. To disable it simply add new environment variable WS_CRON_BACKUP=0.

2023-10-31

We added new command called db:parity which will check if your backends are reporting the same data.