* ES Client must bootstrap itself to be the source of config
If this is not done a cyclic loop is created between the config loader and the ES client.
This lays the ground work for ES being the source of all app config.
* auto_download is not used anymore
* Add UserConfig class that encapsulates user config storage
This class will allow the rest of the code to 'not care' about how user properties are stored.
This requires the addition of a ta_users index in ES.
* Create migration task for user config transfer
* Replace getters and setters for each property
Strongly type the user configuration
Migrate missed sponsorblock ID
* Other DB settings will be another PR
* Add version API and add local_version function.
* Minor adjustments for linting.
* Add missing newlines for linter.
* Add missing comma to `urls.py`.
* Remove `version/` endpoint.
* Remove the `VersionView`.
* Prepare `PingView` for removal of the `is_static` response.
* Remove the `is_unstable` response from `ReleaseVersion`.
* Readd missing class instantiation for first call of `ReleaseVersion`.
This adds a new check to the playlist url_id check to allow playlist urls from subscription only content on youtube channels.
The channel I tested on had an ID length of 26 (https://www.youtube.com/playlist?list=UUMOvk0KB4Ue0vfPqvDzjIAwiQ), I am not sure if other lengths are valid here also.
I have tested this on my local install and it is downloading the members only playlist correctly as long as I have valid youtube cookies.