* catch health check cancellation
* local library scanner cleanup
* emby and jf library scanner cleanup
* rework emby movie library scanner
* refactor emby movie library scanner
* refactor jellyfin movie library scanner
* clear etag until after new media has been processed
* refactor plex movie library scanner
* update changelog
* rework plex movie library scanner; add unavailable media item state
* plex television scanner improvements
* reset plex etags as needed
* update changelog
* support external subtitles in local movie libraries
* code cleanup
* simplify subtitle updating
* skip external subtitles from media servers
* fix plex subtitles
* first pass at text subtitle support
* support text subtitles from movies, music videos and other videos
* fixes
* qsv fixes
* vaapi fixes
* update changelog
* flag local movies as file not found
* show warning icon on cards
* unflag movie that is found during scan
* skip missing files when building playouts
* add state to search index
* add file not found health check
* link to search from file not found health check
* support flagging other media kinds as file not found
* continue to schedule missing items
* support episode files not found
* wip trash page
* fix trash url
* trash page is functional
* update changelog
* fix changelog merge
* start to add multi-collections
* create multi collection with no items
* edit multi collections
* fix plex credentials threading issue
* add playback order to multi collection items
* group episodes outside of shuffled enumerator
* move playback order onto each schedule item
* fix multi collection grouping
* update changelog
* add new columns
* store local content ratings
* display and search content ratings
* add content_rating to search docs
* sync content rating from jellyfin, emby, plex
* force sync content rating for all libraries
* code cleanup
* use etags to optimize local movie scanner
* use etags to optimize local television scanner
* use etags to optimize local music video scanner
* code cleanup
* wip
* start to add jellyfin tables to db
* code cleanup
* finish adding jellyfin media source
* sync jellyfin libraries
* display list of jellyfin libraries
* toggle jellyfin library sync
* edit jellyfin path replacements
* noop jellyfin scanners
* get jellyfin admin user id on startup
* implement jellyfin disconnect
* add jellyfin libraries to list; start to query jellyfin library items
* code cleanup
* start to project jellyfin movies
* save new jellyfin movies to db
* basic jellyfin movie update
* load jellyfin actor artwork
* load jellyfin movie poster and fan art
* more jellyfin artwork fixes, sync audio streams
* jellyfin playback sort of works
* skip jellyfin movies that are inaccessible
* use ffprobe for jellyfin movie statistics
* code cleanup
* store jellyfin operating system
* more jellyfin movie updates
* update jellyfin movie poster and fan art
* add jellyfin tv types
* sync jellyfin shows
* sync jellyfin seasons
* sync jellyfin episodes
* remove missing jellyfin television items
* delete empty jellyfin seasons and shows
* fix jellyfin updates
* fix indexing jellyfin movie and show languages
* add actor metadata
* show actors in ui
* get full movie/show metadata from plex
* store actor thumbnail url
* rework movie detail page
* metadata fixes
* rework show detail page
* rework artist page
* code cleanup
* clean up genre, tag, studio orphans
* enforce foreign keys at connection level
* wip
* fix fragment scroll offset
* fix see all link for music videos
* add fake artist metadata
* not null artist id
* add artist scanning
* remove improperly named music videos
* code cleanup
* add artists to search results and collections
* clean up music video metadata / artist
* add artist view
* show music videos on artist page
* add music video artwork placeholder