* Sources that use cookies when_needed now retry downloads if we think it'd help
* tweaked error message we're checking on to match media_download_worker
* Added last_error to media item table
* Error messages are now persisted to the last_error field
* Minor layout updates
* Added help tooltip to source content view
* Added error information to homepage tables
* Remove unneeded index
* Added docs to tooltip component
* Updated default job priorities for downloading queue
* Added the ability to set priority to various downloading helpers
* Sets sources to fast index on creation
* Added sleep interval to settings
* Added new sleep setting to yt-dlp runner and added tests
* Added setting for form; updated setting name
* Updated form label
* Prevented saving/updating of media items if being throttled by youtube
* Added the bot message to the list of non-retryable errors
* Fixed typo
* Moved quality options to their own module
* Added language and format selection to quality option builder
* [WIP] migrating tests
* Added audio_lang to media_profile table
* Renamed column; added format options and tests
* Adds UI for audio_track to the media profile form
* Adds a version string to in-app streams to help with cache busting
* Added logic to ignore downloads that aren't in the right live state
* Added tests for get_downloadable_status method
* Added tests for media downloader module
* Added tests to download worker modeule
* Added ability to pass additional yt-dlp options to indexing step
* Added predicted_filename to media struct
* WIP added ability to predict filepath to source indexing
* renamed predicted_filepath
* Added the ability to predict filepath when fast indexing
* Add predicted_media_filepath to media items table
* Addressed TODOs
* Added function for updating a media item's filepaths on-disk
* Added placeholder action to source page
* Turned the file sync into a job and properly hooked it up to the controller
* Added 'use_cookies' column to source
* Added cookies to the source form
* Updated every command to optionally include cookies
* LOTS of tests
* Made YT cookies off by default
* [WIP] started on source deletion
* Removed unneeded test blocks
* Added marked_for_deletion_at to sources and media profiles
* Hooked up async deletion to media profiles as well
* Changed the purpose of the 'culled_at' flag. renamed some methods
* implemented new culling behaviour for source cutoff dates
* Removed culled_at flag if a media item gets redownloaded
* Updated source form
* Removed unused method
* Started capturing playlist_index on indexing pass
* Added playlist_index as a media item field
* Added playlist index to output variable templates
* Improved the way playlist_indexes are rejected on update
* Updated docs
* Undid unneeded changes
* [WIP] started on codec parser
* Added codec preferences to settings model
* [WIP] added basic codec preference fields to settings form
* Hooked up the backend portion of the codec preference work
* Added codec settings to frontend
* Ensured you can remove codec data
* [WIP] Got query kinda working, now to refactor other queries
* Refactored all query methods to use dynamic snippets
* Refactored tab layout to grab tabs by name
* Removed standalone show buttons from in-app tables
* Removed unneeded comment
* Added ability to specify overwrite behaviour when downloading media
* Added helper for redownloading media items
* renamed media redownload worker to disambiguate it from similarly named methods
* Added new redownload option to source actions dropdown
* Refactored MediaQuery to use a __using__ macro
* docs
* Added upload date index field to media_items
* Added incrementing index for upload dates
* Added media item upload date index to download option builder
* Added new season_episode_index_from_date to UI; updated parser
* Improve support for channels
* Hopefully fixed flakey test
* Namespaced notification modules under lifecycle
* Added a JSON encoder for all the main model types
* Added startup task to create user script file
* Hook up user script event to media download
* Hooked up media deletion user script
* Added jq to docker deps
* Updated README
* Updated downloader and runner to handle sponsorblock failures more gracefully
* stopped download worker from running if a media item is preventing download
* [Enhancement] Adds ability to stop media from re-downloading (#159)
* Added column
* Added methods for ignoring media items from future download
* Added new deletion options to controller and UI
* Added controller actions and UI for editing a media item
* Added column to sources
* Added retention period to form
* [WIP] getting retention methods in place
* Hooked up retention worker
* Added column and UI to prevent automatic deletion
* Docs
* Removed unused backfill worker
* Added edit links to media item tabs on source view
* Clarified form wording
* Form wording (again)