* 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
* [Unrelated] updated module name for existing liveview module
* Updated toggle component and moved MP index table to a liveview
* [WIP] reverted MP index table; added source count to MP index
* Moved new live table to sources index
* Added 'enabled' boolean to sources
* Got 'enabled' logic working re: downloading pending media
* Updated sources context to do the right thing when a source is updated
* Docs and tests
* Updated slow indexing to maintain its old schedule if re-enabled
* Hooked up the enabled toggle to the sources page
* [Unrelated] added direct links to various tabs on the sources table
* More tests
* Removed unneeded guard in
* Removed outdated comment
* Add option to use existing Media Profile as template for new profile
* Forgot to commit the edit form too
* Reset deletion mark on Source controller
* Add test for new preload profile feature
* mix check
* 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
* Format 'Scheduled At' in task table according to user's TZ
* Changed video preview layout to 1 column on all displays
* Made links in descriptions clickable
* Updated Copy JSON button to properly escape newline characters
* 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
* Updated deps in case that does anything
* Kills running slow-indexes when a new slow-index is enqueued
* Revert deps upgrade (saving that for its own PR)
* Added duration limits to source model
* Added duration limits to source form
* Added validation for min/max amounts
* Added duration checks to pending query
* Moved min/max filters up in source form
* Removed debugger
* 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